Auto-installs over OTA on devices running v1/v2/v3.
Local ADS-B receiver as a data source — point Blipscope at your own dump1090-fa / readsb aircraft.json instead of OpenSky. No rate limit, no account, ~1 s refresh. Pick it with the new Data source selector on the config page (with a Receiver URL field).
Special-aircraft detection (all offline, from the live feed) — military by ICAO allocation, helicopters by ADS-B category, and distinctive callsigns (rescue/police/agency/test). Shown as a coloured diamond + tag on the radar, list, and detail, with an optional military ntfy flyover alert.
Type-aware radar markers keyed off ADS-B category — rotorcraft hub, balloon ring, slender glider, and a bigger winged dart for heavies.
Spotting logbook ("lifelist") — a persistent, bounded NVS tally of unique types/airlines/countries plus a contact odometer, on the Stats screen, with a gold NEW flag on first sightings.
"Look up!" overhead alert — a pulsing cyan ring when a contact passes within a configurable distance of centre, with an optional ntfy push.
Home Assistant / MQTT — a dedicated-task publisher posts a retained summary (count, nearest aircraft, overhead/military flags) plus HA auto-discovery so sensors appear automatically. Non-blocking, plain TCP to a local broker.
Responsiveness — the OpenSky states fetch (HTTPS + JSON decode) moved to a background FreeRTOS task so the loop stays responsive during a refresh; fixes taps being dropped mid-fetch.