Flightradar24 integration for Home Assistant

May 21, 2026 ยท View on GitHub

version HACS Community Forum

Flightradar24 integration allows one to track overhead flights in a given region or particular planes. It will also fire Home Assistant events when flights enter/exit/landed/took off. Or monitor departures and arrivals at an airport

IMPORTANT: No need FlightRadar24 subscription!

It allows you:

  1. Know how many flights in your area right now, or just have entered or exited it. And get list of flights with full information by every relevant flight for the sensor
  2. Track a particular plane or planes no matter where it currently is, even if it is a scheduled flight
  3. Monitor daily statistics (like on time/delayed/canceled flights) of the selected airport
  4. Get top 10 most tracked flights on FlightRadar24
  5. Create notifications (example - Get a notification when a flight enters or exits your area, Get a notification when a tracked scheduled flight takes off)
  6. Create automations (example - Automatically track a flight by your needs)
  7. Add flights table for your area to your Home Assistant dashboard by Lovelace Card)
  8. Add departures/arrivals boards of the selected airport to your Home Assistant dashboard by Lovelace Airport Card)
  9. Track your flight as Device Tracker
  10. Get info for last flights which were in your area or get info about latest exited flight by creating Last Flights History Sensor

Components

Events

  • flightradar24_entry: Fired when a flight enters the region.
  • flightradar24_exit: Fired when a flight exits the region.
  • flightradar24_most_tracked_new: Fired when a new flight appears in top 10 most tracked flights on FlightRadar24
  • flightradar24_area_landed: Fired when a flight lands in your area.
  • flightradar24_area_took_off: Fired when a flight takes off in your area.
  • flightradar24_tracked_landed: Fired when a tracked flight lands.
  • flightradar24_tracked_took_off: Fired when a tracked flight takes off.
  • flightradar24_tracked_arrived_gate: Fired when a tracked flight removed from the tracked list.
  • flightradar24_tracked_left_gate: Fired when a tracked flight left gate.

Sensors

  • Current in area - Current flights in your area
  • Entered area - Flights that just have exited your area
  • Exited area - Flights that just have entered your area
  • Additional tracked - Your additional tracked outside your area
  • Most tracked - Most tracked flights on FlightRadar24. You may disable it via configuration
  • Airport arrivals - List of current arrival flights for the selected airport
  • Airport departures - List of current departure flights for the selected airport
  • Airport arrivals on time - Amount of arrivals on time for the selected airport today
  • Airport arrivals delayed - Amount of delayed arrivals for the selected airport today
  • Airport arrivals delay average - Average arrivals delay for the selected airport today
  • Airport arrivals delay index - Disruption arrivals index for the selected airport today
  • Airport arrivals canceled - Amount of canceled arrivals for the selected airport today
  • Airport departures on time - Amount of departures on time for the selected airport today
  • Airport departures delayed - Amount of delayed departures for the selected airport today
  • Airport departures delay average - Average departures delay for the selected airport today
  • Airport departures delay index - Disruption departures index for the selected airport today
  • Airport departures canceled - Amount of canceled departures for the selected airport today

Device Tracker

You may be interested to add a live flight as device_tracker with the flight information to a person in HA. To use it - you need to activate this feature in Edit Configuration. When it is enabled - this integration creates device_tracker with static name device_tracker.flightradar24 and this device_tracker updates when there is a live flight in the additional tracked list. It works ONLY with one live flight from the additional tracked list at a time!

Configuration

  • Add to track - Pass flight number or call sign or aircraft registration number to track flight outside your area. It adds flight to Additional tracked sensor
  • Remove from track - Pass flight number or call sign or aircraft registration number to remove a flight from Additional tracked sensor
  • Airport track - Pass IATA or ICAO airport code to start receiving data in Airport sensors. To stop receiving airport data just pass an empty string
  • API data fetching - you may disable FlightRadar API calls when not needed to prevent unnecessary API calls and save bandwidth and server load.
  • Clear Additional tracked - Clear all flights in Additional tracked sensor

Sensors (Current in area, Entered area, Exited area, Additional tracked) shows how many flights in the given area, additional tracked, just have entered or exited it. All these sensors have attribute flights with list of flight object contained a full information by every relevant flight for the sensor

Sensor Most tracked has attribute flights with list of most tracked object

Sensors Airport arrivals and Airport departures have attribute flights with list of the next 50 airport flights

Installation

Have HACS installed, this will allow you to update easily.

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

or go to Hacs and search for Flightradar24.

Manual

  1. Locate the custom_components directory in your Home Assistant configuration directory. It may need to be created.
  2. Copy the custom_components/flightradar24 directory into the custom_components directory.
  3. Restart Home Assistant.

Configuration

Flightradar24 is configured via the GUI. See the HA docs for more details.

The default data is preset already

  1. Go to the Settings->Devices & services.
  2. Click on + ADD INTEGRATION, search for Flightradar24.
  3. You may change the default values for Radius, Latitude and Longitude
  4. Click SUBMIT

Edit Configuration

You may edit configuration data like:

  1. Latitude and longitude of your point
  2. Radius of your zone
  3. Scan interval for updates in seconds
  4. The minimum and maximum altitudes in foots between which the aircraft will be tracked
  5. Enable/Disable top 10 most tracked flights on FlightRadar24
  6. Enable/Disable device_tracker for flights
  7. Optional: Username and password if you have FlightRadar24 subscription
  8. Enable/Disable Enable auto-cleanup of landed tracked flights. That automatically removes flights from the "Additional tracked" list once they arrive at the gate
  9. Map Tracker Naming Style.
  • Callsign Only (e.g., KLM1412) - Default
  • Callsign + Route (e.g., KLM1412 (CDG - AMS))
  • Registration + Route (e.g., PH-BXE (CDG - AMS))

To do that:

  1. Go to the Settings->Devices & services.
  2. Search for Flightradar24, and click on it.
  3. Click on CONFIGURE
  4. Edit the options you need and click SUBMIT

Uses

Notification - When a flight enters or exits your area

To receive notifications of the entering flights add following lines to your configuration.yaml file:

automation:
  - alias: "Flight entry notification"
    trigger:
      platform: event
      event_type: flightradar24_entry
    action:
      service: notify.mobile_app_<device_name>
      data:
        message: >-
          Flight entry of {{ trigger.event.data.callsign }} to {{ trigger.event.data.airport_destination_city }}
          [Open FlightRadar](https://www.flightradar24.com/{{ trigger.event.data.callsign }})
        data:
          url: >-
            https://fr24.com/{{ trigger.event.data.callsign }}/{{
            trigger.event.data.id }}
          clickAction: >-
            https://fr24.com/{{ trigger.event.data.callsign }}/{{
            trigger.event.data.id }}
          image: "{{ trigger.event.data.aircraft_photo_medium }}"

All available fields in trigger.event.data you can check here

If you have defined more than one device of FlightRadar24 for more places to observe - you may be interested to know what device has fired the event It is stored in

trigger.event.data.tracked_by_device

To change name in tracked_by_device

  1. Go to the Settings->Devices & services.
  2. Search for Flightradar24, and click on it.
  3. Click on three-dot near of device you wanted
  4. Click on Rename in the opened sub-menu
  5. Enter new name and click OK

Notification - When a tracked scheduled flight takes off

To receive notification of taking off tracked scheduled flight add following lines to your configuration.yaml file:

automation:
  - alias: "Scheduled flight takes off"
    trigger:
      platform: event
      event_type: flightradar24_tracked_took_off
    action:
      service: notify.mobile_app_<device_name>
      data:
        message: >-
          Flight takes off {{ trigger.event.data.callsign }} to {{ trigger.event.data.airport_destination_city }}
          [Open FlightRadar](https://www.flightradar24.com/{{ trigger.event.data.callsign }})
        data:
          url: >-
            https://fr24.com/{{ trigger.event.data.callsign }}/{{
            trigger.event.data.id }}
          clickAction: >-
            https://fr24.com/{{ trigger.event.data.callsign }}/{{
            trigger.event.data.id }}
          image: "{{ trigger.event.data.aircraft_photo_medium }}"

Automation

To automatically add a flight to additional tracking add following lines to your configuration.yaml file:

automation:
  - alias: "Track flights"
    trigger:
      platform: event
      event_type: flightradar24_exit
    condition:
      - condition: template
        value_template: "{{ 'Frankfurt' == trigger.event.data.airport_origin_city }}"
    action:
      - service: text.set_value
        data:
          value: "{{ trigger.event.data.aircraft_registration }}"
        target:
          entity_id: text.flightradar24_add_to_track

This is an example to filter flights to track, change the conditions for your needs

Last Flights History Sensor

You may get info for last flights which were in your area. Or get info about latest exited flight. Here is an example for recording history for the last 5 flights. The sensor has the same structure as sensor.flighradar24_current_in_area and so you can use the same markdown code. Only the sensor state is different - it shows the latest exited flight. You may change it for your needs. Add following lines to your configuration.yaml file:

template:
  - trigger:
      - platform: event
        event_type: flightradar24_exit

    sensor:
      - unique_id: flightradar24_last_5_flights
        name: "FlightRadar24 Last 5 Flights"
        state: >-
          {% set flight = trigger.event.data %}
          {{ flight.flight_number }} - {{ flight.airline_short }} - {{ flight.aircraft_model }} ({{ flight.aircraft_registration }})
          {{ flight.airport_origin_city }} > {{ flight.airport_destination_city }}
        attributes:
          flights: >-
            {% set n = 5 %}
            {% set m = this.attributes.flights | count | default(0) %}
            {{ [ trigger.event.data ] + 
               ( [] if m == 0 else 
                 this.attributes.flights[0:n-1] )
            }}
          icon: mdi:airplane

Lovelace Card

You can add flight table to your Home Assistant dashboard

  1. Go to your Home Assistant dashboard
  2. In the top right corner, select the three-dot menu, then select Edit dashboard
  3. Click on + ADD CARD, search for Manual, click on Manual.
  4. Add following code to the input window and click SAVE
type: vertical-stack
title: Flightradar24
cards:
  - type: entities
    entities:
      - entity: sensor.flightradar24_current_in_area
        name: In area
  - type: conditional
    conditions:
      - condition: numeric_state
        entity: sensor.flightradar24_current_in_area
        above: 0
    card:
      type: markdown
      content: >-
        {% set data = state_attr('sensor.flightradar24_current_in_area',
        'flights') | default([], true) %} {% for flight in data %}{% if (flight.tracked_type | default('live')) == 'live' %}
          <ha-icon icon="mdi:airplane"></ha-icon>{{ flight.flight_number }} - {{ flight.airline_short }} - {{ flight.aircraft_model }}
          {{ flight.airport_origin_city }}{%if flight.airport_origin_city %}<img src="https://flagsapi.com/{{ flight.airport_origin_country_code }}/shiny/16.png" title='{{ flight.airport_origin_country_name }}'/>{% endif %} -> {{ flight.airport_destination_city }}{%
          if flight.airport_destination_country_code %}<img src="https://flagsapi.com/{{ flight.airport_destination_country_code }}/shiny/16.png" title='{{ flight.airport_destination_country_name }}'/>{% endif %}
          {%if flight.time_scheduled_departure %}Departure - {{ flight.time_scheduled_departure | timestamp_custom('%H:%M') }}; {% endif %}{%if flight.time_scheduled_arrival%}Arrival - {{ flight.time_scheduled_arrival | timestamp_custom('%H:%M') }}{% endif %}
          Altitude - {{ flight.altitude }} ft{%if flight.altitude > 0 %} ({{(flight.altitude * 0.3048)| round(0)}} m){% endif%}; Gr. speed - {{ flight.ground_speed }} kts{%if flight.ground_speed > 0 %} ({{(flight.ground_speed * 1.852)| round(0)}} km/h){% endif%}
          {% else%}
          <ha-icon icon="mdi:airplane"></ha-icon>{{ flight.flight_number }} - {{ flight.callsign }} - {{ flight.tracked_type }}
          {% endif%}{% endfor %}

This example for sensor.flightradar24_current_in_area which shows flights in your area, to show additional tracked flights replace sensor name to sensor.flightradar24_additional_tracked

All available fields for flight you can check here

Lovelace Card with Map

  1. Go to your Home Assistant dashboard
  2. In the top right corner, select the three-dot menu, then select Edit dashboard
  3. Click on + ADD CARD, search for Manual, click on Manual.
  4. Add following code to the input window. Replace LATITUDE, LONGITUDE with your coordinates. URL example: https://globe.adsb.fi/?enableLabels&trackLabels&zoom=12&hideSideBar&lat=50.984944839678334&lon=11.311357147743463
  5. Click SAVE
type: vertical-stack
title: Flightradar24
cards:
  - type: entities
    entities:
      - entity: sensor.flightradar24_current_in_area
        name: In area
  - type: conditional
    conditions:
      - condition: numeric_state
        entity: sensor.flightradar24_current_in_area
        above: 0
    card:
      type: markdown
      content: >-
        {% set data = state_attr('sensor.flightradar24_current_in_area',
        'flights') | default([], true) %} {% for flight in data %}
          <ha-icon icon="mdi:airplane"></ha-icon>{{ flight.flight_number }}({{ flight.aircraft_registration }}) - {{ flight.airline_short }} - {{ flight.aircraft_model }}
          {{ flight.airport_origin_city }}{%if flight.airport_origin_city %}<img src="https://flagsapi.com/{{ flight.airport_origin_country_code }}/shiny/16.png" title='{{ flight.airport_origin_country_name }}'/>{% endif %} -> {{ flight.airport_destination_city }}{%
          if flight.airport_destination_country_code %}<img src="https://flagsapi.com/{{ flight.airport_destination_country_code }}/shiny/16.png" title='{{ flight.airport_destination_country_name }}'/>{% endif %}
          {%if flight.time_scheduled_departure %}Departure - {{ flight.time_scheduled_departure | timestamp_custom('%H:%M') }}; {% endif %}{%if flight.time_scheduled_arrival%}Arrival - {{ flight.time_scheduled_arrival | timestamp_custom('%H:%M') }}{% endif %}
          Altitude - {{ flight.altitude }} ft{%if flight.altitude > 0 %} ({{(flight.altitude * 0.3048)| round(0)}} m){% endif%}; Gr. speed - {{ flight.ground_speed }} kts{%if flight.ground_speed > 0 %} ({{(flight.ground_speed * 1.852)| round(0)}} km/h){% endif%}
          {% endfor %}
  - type: iframe
    url: >-
      https://globe.adsb.fi/?enableLabels&trackLabels&zoom=12&hideSideBar&lat=LATITUDE&lon=LONGITUDE
    aspect_ratio: 100%

Database decrease

To decrease data stored by Recorder in database add following lines to your configuration.yaml file:

recorder:
  exclude:
    entity_globs:
      - sensor.flightradar24*

Flight fields

FieldDescription
tracked_by_deviceIf you have defined more than one device of FlightRadar24 for more places to observe - you may be interested to know what device has fired the event. To rename the device check this
tracked_typeOnly for tracked flights. It shows is flight live or scheduled
flight_numberFlight Number
latitudeCurrent latitude of the aircraft
longitudeCurrent longitude of the aircraft
altitudeAltitude (measurement: foot)
on_groundIs the aircraft on ground (measurement: 0 - in the air; 1 - on ground)
distanceDistance between the aircraft and your point (measurement: kilometers)
closest_distanceClosest distance the aircraft reached to your point while tracking (measurement: kilometers)
ground_speedGround speed (measurement: knots)
squawkSquawk code are what air traffic control (ATC) use to identify aircraft when they are flying (for subscription only)
vertical_speedVertical speed
headingThe compass direction in which the craft's bow or nose is pointed (measurement: degrees)
callsignCallsign of the flight
aircraft_registrationAircraft registration number
aircraft_photo_smallAircraft small size photo url
aircraft_photo_mediumAircraft medium size photo url
aircraft_photo_largeAircraft large size photo url
aircraft_modelAircraft model
aircraft_codeAircraft code
aircraft_icao_24bitUnique aircraft ID
aircraft_categoryAircraft category (example: Helicopter or Airplane)
airlineAirline full name
airline_shortAirline short name
airline_iataAirline IATA code
airline_icaoAirline ICAO code
airport_origin_nameOrigin airport name
airport_origin_code_iataOrigin airport IATA code
airport_origin_code_icaoOrigin airport ICAO code
airport_origin_country_nameOrigin airport country name
airport_origin_country_codeOrigin airport country code
airport_origin_cityOrigin airport city name
airport_origin_timezone_offsetOrigin airport timezone offset (in seconds)
airport_origin_timezone_abbrOrigin airport timezone abbreviation
airport_origin_terminalOrigin airport terminal
airport_origin_latitudeOrigin airport latitude
airport_origin_longitudeOrigin airport longitude
airport_destination_nameDestination airport name
airport_destination_code_iataDestination airport IATA code
airport_destination_code_icaoDestination airport ICAO code
airport_destination_country_nameDestination airport country name
airport_destination_country_codeDestination airport country code
airport_destination_cityDestination airport city name
airport_destination_timezone_offsetDestination airport timezone offset (in seconds)
airport_destination_timezone_abbrDestination airport timezone abbreviation
airport_destination_terminalDestination airport terminal
airport_destination_latitudeDestination airport latitude
airport_destination_longitudeDestination airport longitude
time_scheduled_departureScheduled departure time
time_scheduled_arrivalScheduled arrival time
time_real_departureReal departure time
time_real_arrivalReal arrival time
time_estimated_departureEstimated departure time
time_estimated_arrivalEstimated arrival time

Most tracked

Sensor Most tracked shows top 10 most tracked flights on FlightRadar24 with next flight fields

FieldDescription
flight_numberFlight Number
callsignCallsign of the flight
squawkSquawk code are what air traffic control (ATC) use to identify aircraft when they are flying
aircraft_modelAircraft model
aircraft_codeAircraft code
clicksHow many people track this flight
airport_origin_code_iataOrigin airport IATA code
airport_origin_cityOrigin airport city name
airport_destination_code_iataDestination airport IATA code
airport_destination_cityDestination airport city name

Lovelace Airport Card

You can add departures/arrivals boards of the selected airport to your Home Assistant dashboard

  1. Go to your Home Assistant dashboard
  2. In the top right corner, select the three-dot menu, then select Edit dashboard
  3. Click on + ADD CARD, search for Manual, click on Manual.
  4. Add following code to the input window and click SAVE
type: vertical-stack
title: Flightradar24
cards:
  - type: entities
    entities:
      - entity: sensor.flightradar24_airport_arrivals_canceled
        name: Arrivals canceled
      - entity: sensor.flightradar24_airport_arrivals_delayed
        name: Arrivals delayed
      - entity: sensor.flightradar24_airport_arrivals_on_time
        name: Arrivals on time
  - type: markdown
    title: Arrivals
    content: >
      {% set flights =
      state_attr('sensor.flightradar24_airport_arrivals','flights') |
      default([], true) %}
        | TIME | FROM | FLIGHT | REMARK |
        | ---- | ---- | ------ | ------ | {% for f in flights %}
        | {{ f.time_scheduled_arrival | timestamp_custom('%H:%M') if f.time_scheduled_departure else '--:--' }} | {{ f.airport_city |  default('---', true) }} | {{ f.flight_number |  default('---', true) }} | {{ f.status_text |  default('---', true) }} | {% endfor %}
  - type: entities
    entities:
      - entity: sensor.flightradar24_airport_departures_canceled
        name: Departures canceled
      - entity: sensor.flightradar24_airport_departures_delayed
        name: Departures delayed
      - entity: sensor.flightradar24_airport_departures_on_time
        name: Departures on time
  - type: markdown
    title: Departures
    content: >
      {% set flights = state_attr('sensor.flightradar24_airport_departures',
      'flights') |  default([], true) %}
        | TIME | TO | FLIGHT | REMARK |
        | ---- | ---- | ------ | ------ | {% for f in flights %}
        | {{ f.time_scheduled_departure | timestamp_custom('%H:%M') if f.time_scheduled_departure else '--:--' }} | {{ f.airport_city |  default('---', true) }} | {{ f.flight_number |  default('---', true) }} | {{ f.status_text |  default('---', true) }} |{% endfor %}

All available fields for flight you can check here

To start receiving data for an airport - Pass IATA or ICAO airport code to text.flightradar24_airport_track. To stop receiving airport data just pass an empty string

Airport Flight fields

Sensor sensor.flightradar24_airport_arrivals and sensor.flightradar24_airport_departures shows flights with next flight fields

FieldDescription
status_textFlight status test (example: Delayed 17:02)
statusFlight status (example: delayed)
flight_idFlight id on FlightRadar24
flight_numberFlight Number
callsignCallsign of the flight
aircraft_modelAircraft model
aircraft_codeAircraft code
aircraft_registrationAircraft registration number
airlineAirline full name
airline_shortAirline short name
airline_iataAirline IATA code
airline_icaoAirline ICAO code
airport_nameAirport name
airport_code_iataAirport IATA code
airport_code_icaoAirport ICAO code
airport_country_nameAirport country name
airport_country_codeAirport country code
airport_cityAirport city
time_scheduled_departureScheduled departure time
time_scheduled_arrivalScheduled arrival time
time_real_departureReal departure time
time_real_arrivalReal arrival time
time_estimated_departureEstimated departure time
time_estimated_arrivalEstimated arrival time

Thanks To

This integration should only be used for your own educational purposes. If you are interested in accessing Flightradar24 data commercially, please contact business@fr24.com. See more information at Flightradar24's terms and conditions.