Flightradar Radar Card — a retro CRT radar scope for your flight data 🛩️

I wanted something nicer to look at than a table on the wall tablet in my hallway, so I built a Lovelace card that shows live air traffic around your home as an old-school CRT radar scope: rotating sweep, phosphor blip decay (blips light up exactly when the beam paints them and fade until the next pass), a dark map underlay, and an ATC-style contacts board with flight details.

It’s built on top of the excellent FlightRadar24 integration by @AlexandrErohin (community thread) — you’ll need that installed first; the card reads its “current in area” sensor.

Some things it does beyond the visuals:

  • Smooth motion — blips dead-reckon along their track between sensor updates instead of jumping
  • Click a blip or contact row — ATC-style data tag on the scope + aircraft photo in the panel
  • Helicopters get their own circle glyph (detected from aircraft type — I watch a lot of choppers)
  • Emergency squawks (7700/7500/7600) paint red, pulse, and jump to the top of the list
  • Privacy-blocked aircraft are labeled by type (e.g. H145) instead of “BLOCKED”, and keep a stable track even with no ID in the feed
  • Lost contacts linger — momentary signal dropouts don’t blink blips away; they coast dimmed for a while and only disappear if they don’t come back
  • Optional synthesized sonar pings (Web Audio, no sound files) for new contacts / proximity / emergencies
  • Three themes (green / amber / blue), configurable trails (line or phosphor dots), range-ring labels, kts↔km/h and ft↔m units
  • Built for wall tablets: fits itself to the screen height, works in the companion app’s WebView, kiosk-friendly

Everything is configurable through the visual card editor. Minimal config:

type: custom:flightradar-radar-cardentity: sensor.flightradar24_current_in_arearadius_km: 10   # match your integration's radius

Install: HACS → Custom repositories → https://github.com/Ehrenholm/flightradar-radar-card (type: Dashboard), or grab the JS from the latest release.

Repo with full docs and FAQ: GitHub - Ehrenholm/flightradar-radar-card: Home Assistant custom Lovelace card · GitHub


8 Likes

Very nice. I am using this now and getting addicted to it once I hear an airplane :slight_smile:

1 Like

Update: v1.1.1 — a stale-data warning and a fun bug hunt :hammer_and_wrench:

Two updates since the 1.0.0 release, both born from things that actually happened on my own wall display, so I thought I’d share the stories along with the changes.

v1.1.0 — the scope now tells you when the data is dead

I spent an evening wondering why nothing was showing up — a plane passed practically over the house, clearly inside my radius, and the scope stayed empty. Turned out the FlightRadar24 integration had silently frozen at lunchtime. The card was doing its job perfectly; it just had nothing to draw. The problem: an empty scope looks exactly the same whether the sky is quiet or the feed is dead.

So the readout now has a DATA segment showing the age of the last sensor update (DATA 8S). If it gets older than a threshold (stale_after, default 120 seconds) it turns into a red blinking STALE 10H30M — and yes, that number is from the actual incident. If you see it: reload the integration. Set stale_after: 0 if you’d rather not have the indicator.

v1.1.1 — the mystery of the fan of lines

Twice I caught the scope drawing a strange fan of long lines converging on a helicopter, like it had five trails at once. The cause was a fun one: FR24 reports privacy-blocked aircraft with the literal text Blocked — and my placeholder filter only knew BLOCKED in uppercase. So “Blocked” became the aircraft’s identity, and when two blocked helicopters were in the area at the same time, they merged into a single track. Every update interleaved both flight paths into one trail, and the polyline zigzagged between them — hence the fan.

Fixed with two layers: placeholder strings are now matched case-insensitively (blocked aircraft show their type, like H145, and get stable anonymous tracks), and two aircraft can never merge into one track even if the feed gives them identical identities. If you watch police or HEMS helicopters, this one’s for you.

Updating: if you installed via HACS you’ll see the update there; manual installs grab the file from the latest release — remember to bump the ?v= on your resource URL. The running version is always shown in the map’s bottom-right corner.

As always — bug reports, helicopter type codes the circle-glyph detection misses, and theme ideas are very welcome on GitHub.