Home Assistant Add-on: ADS-B Multi-Portal Feeder (Flightradar24 and FlightAware)

Might share your configuration - XXX out all keys etc - please?

That ntp time thing looks sus, you have any internet filters? Firewall blocking outgoing ports etc?

Configuration for your Add-on? It’s pretty simple really, as I did the setup yesterday on freshly new flashed Home Assistant OS, I have following:

SERVICE_ENABLE_DUMP1090: true
SERVICE_ENABLE_PIAWARE: false
SERVICE_ENABLE_FR24FEED: true
SERVICE_ENABLE_HTTP: true
PIAWARE_FEEDER_DASH_ID: ""
FR24FEED_FR24KEY: "xxxxxxxxxxxxxxxx"
ADSBEXCHANGE_UUID: ""
PLANEFINDER_SHARECODE: ""
HTML_SITE_LAT: HOMEASSISTANT_LATITUDE
HTML_SITE_LON: HOMEASSISTANT_LONGITUDE
HTML_DEFAULT_TRACKER: Flightradar24

And that’s all. The rest is unused. I don’t have any particular internet filters, I have standard router from provider, and didn’t fiddle with the setting at all. One thing to add is that my RPi is connected to network just via WiFi as I didn’t want to deal with the cables just to try it.

Alright, so I budged and tried to use Ethernet cable, because I’ve noticed some other widget on the home screen of HA didn’t work although they did when I was setting it up via cable. And now it works all fine. Everything on the feeder screen is green and FR24 received first few aircraft. I really wouldn’t believe it will make such a difference.

Hi there,

I have installed the docker from thomx/fr24feed-piaware on a separate RPi from where I feed FR24 as well.
On an other RPi I have installed Home Assistant and your Add On. Now I want to grap those data and show it in Home Assistant but it doesn’t work. I see the map but it is empty. On my FR24-Pi everything works. I see the planes and the FR24 feeder is online.

As you suggested here is my Add On config:

SERVICE_ENABLE_DUMP1090: true
SERVICE_ENABLE_PIAWARE: false
SERVICE_ENABLE_FR24FEED: false
SERVICE_ENABLE_HTTP: true
PIAWARE_FEEDER_DASH_ID: ""
FR24FEED_FR24KEY: ""
ADSBEXCHANGE_UUID: ""
PLANEFINDER_SHARECODE: ""
HTML_SITE_LAT: HOMEASSISTANT_LATITUDE
HTML_SITE_LON: HOMEASSISTANT_LONGITUDE
HTML_DEFAULT_TRACKER: Flightradar24
DUMP1090_ADDITIONAL_ARGS: >-
  --net-only --mlat --forward-mlat --net-bi-port 30004,30104 --net-bo-port 30005
  --json-location-accuracy 2 --net-heartbeat 30 --fix --fix
DUMP1090_LOCAL_PORT: 30004
DUMP1090_REMOTE_HOST: 192.168.178.131
DUMP1090_REMOTE_PORT: 30005

And here my docker install condig for the dump1090 container:

docker run -d -p 8080:8080 -p 8754:8754 -p 30005:30005 \
	--restart=always \
	--name=docker1090 \
	--device=/dev/bus/usb:/dev/bus/usb \
	-v "/etc/localtime:/etc/localtime:ro" \
	-e "FR24FEED_FR24KEY=9043254c319af0bf" \
	-e "PIAWARE_FEEDER_DASH_ID=MY_FEEDER_ID" \
	-e "HTML_SITE_LAT=52" \
	-e "HTML_SITE_LON=13" \
	-e "HTML_SITE_NAME=MY_SITE_NAME" \
	-e "PANORAMA_ID=MY_PANORAMA_ID" \
	-e "LAYERS_OWM_API_KEY=ff23bdcde4052a52610f56f7b4b78f21" \
	-e "SERVICE_ENABLE_ADSBEXCHANGE=false" \
	-e "ADSBEXCHANGE_UUID=MY_UUID" \
	-e "ADSBEXCHANGE_STATION_NAME=MY_STATION_NAME" \
	-e "MLAT_EXACT_LAT=MY_EXACT_SITE_LAT" \
	-e "MLAT_EXACT_LON=MY_EXACT_SITE_LON" \
	-e "MLAT_ALTITUDE_MSL_METERS=MY_SITE_ALT_MSL_METERS" \
	-e "SERVICE_ENABLE_PLANEFINDER=false" \
	-e "PLANEFINDER_SHARECODE=CODE" \
	-e "HTML_DEFAULT_TRACKER=Flightradar24" \
	--tmpfs /run:exec,size=32M \
	--tmpfs /planefinder/log:exec,size=32M \
	--tmpfs /usr/lib/fr24/public_html/data:size=32M \
	thomx/fr24feed-piaware

What do I miss? Do I have to config special ports on my FR24-RPi? I am not sure how to do it. Maybe you can help me.

Thank you for a great add-on!
I set it up and got it all working.

My next wish is to be able to both log (to logbook?) and trigger a notification every time a certain callsign or a ICAO-code becomes visible on my ads-b receiver.

Has anyone accomplished it? I can see that there has been posts in other forums about the flights.json file and to parse it looking for the callsign or ICAO-code, but I haven’t been successful in retrieving the data i need. In my case it would be sufficent to have an automation polling the flights.json file every minute to check if the json-string at all contains the specific callsign or ICAO-code, but I am not good at coding, and haven’t been a home assistant user long enought to understand how to accomplish it.

Any advice or suggestions would be highly appreciated!

This is a great install, thank you.

Running HA on a VM and installed the docker on a container on the same machine, which got the required credentials.

I live near an airport, so this started with just wondering what flights were departing and so on, but had poor results with the OpenSky integration.

I’m still playing about with it, I’ve been building my very limited knowledge on HTTP requests to work with the local API. I then wanted to look into how to obtain further information, which is where I discovered this fantastic open source flight data API:

Annoyingly, Flightradar24 or FlightAware don’t give you access to their API when you’re a feeder. This returns great results. It does have a limit but it shouldn’t really be an issue for a hobbyist.

I haven’t a clue about planes, or API’s, but I’m enjoying this current rabbit hole until I inevitably find the next thing to tinker with.

I did a little messing around with some cards. They aren’t finished, but I’ll be happy to share the code in the mean time if anyone would like any info.

Arrivals card tracks the flights in the sky, but it’s just for a bit of fun and looked better than ‘flights.’ It’s a mix of Card-Mod, Button Card and Mushroom Templates. The header subtlety flickers a little and the time separator colon flashes, for which I used and moulded resources from rhysb’s wonderful vast collection of HA CSS animations. The fonts are from Google Fonts: VT323 for the body and Press Start 2P for the title.

It currently has the same entity for each row because I haven’t worked out how to log these yet and then reference them. My guess would be as a CSV and then somehow reference the last 5-or-so entries, then use a template sensor to read the values. I’ve no idea, and perhaps there’s a simpler way to attack it.

I also took the example of the entities card posted above and styled it with a header utilising the Fr24 card and the footer as a custom graph card showing the aircraft tracked over 24 hours. Again, I will share the code for this but I’m just using mobile now and have some bits to tidy up. I’ve added things with Custom Multiple Entity Row

1 Like

Forgive me if the formatting is not correct here, I am copying it from my phone.

This code in your configuration.yaml will parse all of the data from your local ADSB into attributes of a sensor. The initial value of the sensor will be a large number (messages) but the attributes have all the info.

I used an earlier post in this thread, but I pulled more attributes from it. If it detects multiple aircraft it will show further information which I believe you can obtain by changing the number in the square brackets. However, I’m still rather new to API’s.

Note: replace with your IP to your host.


- platform: rest
  name: FR24 Flight Details
  resource: http://192.168.2.12:8080/data/aircraft.json
  value_template: "{{ value_json.messages }}"
  json_attributes_path: "$.aircraft[:1]"
  method: GET
  scan_interval: 60
  json_attributes:
    - hex
    - flight
    - alt_baro
    - alt_geom
    - gs
    - emergency
    - category
    - nav_modes
    - lat
    - lon
    - messages
    - seen
    - alert
    - seen-pos

You can remove the fields as necessary. ‘Flight’ is the flight number, Hex is your Mode S hex number.

Then, you can add a sensor showing the recent call sign:


- platform: template
  sensors:
    fr24_callsign:
      friendly_name: FR24 Callsign
      value_template: >
          {{ state_attr('sensor.fr24_flight_details','flight') }}

You could then create an automation using the sensor ‘fr24_callsign’

If the formatting is all messed up I’ll do a better job of it on the computer tomorrow.

Also, I’m far from an expert. I know there’s further information to be pulled from the JSON but I’m not quite there yet. Perhaps someone a little more clued up can expand/correct me on this.

Either way, I hope it gives you a bump in the right direction for what you’re looking to achieve. Good luck!

Edit: sorry for the triple post. I haven’t really posted anything on here before. I haven’t used a forum for years, and I’m showing it.

1 Like

RESOLVED
In case it helps anyone else: I had the DUMP 1090 Service disabled. Once enabled, the RTL tuner was discovered and mapped correctly.

Hi, I am having initial set up difficulties and would appreciate some help and guidance.

I have registered for FR24 keys and can see my registration via the FR24 Account Feed Stats, but the logs in HA show errors to do with an unknown receiver and unable to connect.

I have RTL_433 installed as an add-on, but this is disabled, so I do not think that there is a hardware clash. I can open the ADS-B Web UI and see the map, but no data.

 Add-on: ADS-B Multi-Portal Feeder
 Dump1090 based feeder for FlightRadar24, FlightAware and more
-----------------------------------------------------------
 Add-on version: 1.20.0
[fr24feed] 2023-04-16 13:41:54 | ______  _  _         _      _                    _              _____    ___ 
[fr24feed] 2023-04-16 13:41:54 | |  ___|| |(_)       | |    | |                  | |            / __  \  /   |
[fr24feed] 2023-04-16 13:41:54 | | |_   | | _   __ _ | |__  | |_  _ __  __ _   __| |  __ _  _ __`' / /' / /| |
[fr24feed] 2023-04-16 13:41:54 | |  _|  | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / /  / /_| |
[fr24feed] 2023-04-16 13:41:54 | | |    | || || (_| || | | || |_ | |  | (_| || (_| || (_| || |  ./ /___\___  |
[fr24feed] 2023-04-16 13:41:54 | \_|    |_||_| \__, ||_| |_| \__||_|   \__,_| \__,_| \__,_||_|  \_____/    |_/
[fr24feed] 2023-04-16 13:41:54 |                __/ |                                                         
[fr24feed] 2023-04-16 13:41:54 |               |___/                                                          
[fr24feed] 2023-04-16 13:41:54 | [main][i]FR24 Feeder/Decoder
[fr24feed] 2023-04-16 13:41:54 | [main][i]Version: 1.0.34-0/generic
[fr24feed] 2023-04-16 13:41:54 | [main][i]Built on Jan 10 2023 10:09:01 (decoder-v1.0.34-0-7c5301b.git/Linux/static_amd64)
[fr24feed] 2023-04-16 13:41:54 | [main][i]Running on: debian="11"
[fr24feed] 2023-04-16 13:41:54 | [main][i]Local IP(s): 172.30.33.7
[fr24feed] 2023-04-16 13:41:54 | [main][i]Copyright 2012-2023 Flightradar24 AB
[fr24feed] 2023-04-16 13:41:54 | [main][i]https://www.flightradar24.com
[fr24feed] 2023-04-16 13:41:54 | [main][i]DNS mode: PING
[fr24feed] 2023-04-16 13:41:54 | [main][i]Automatic updates are DISABLED
[fr24feed] 2023-04-16 13:41:54 | 23-04-16 13:41:54.793 [I][http-server.cpp:270] [httpd]Server started, listening on :::8754
 You are running the latest version of this add-on.
[fr24feed] 2023-04-16 13:41:54 | [i]PacketSenderConfiguration::fetch_config(): Yoda configuration for this receiver is disabled
[fr24feed] 2023-04-16 13:41:54 | [d]TLSConnection::ctor(): Enable verify_peer in production code!
[fr24feed] 2023-04-16 13:41:54 | [main][i]Reader thread started
[fr24feed] 2023-04-16 13:41:54 | [master][i]Starting processing thread
[fr24feed] 2023-04-16 13:41:54 | [time][i]Synchronizing time via NTP
[fr24feed] 2023-04-16 13:41:54 | [reader][i]Initializing reader
[fr24feed] 2023-04-16 13:41:54 | [reader][i]Connecting to unknown receiver via (tcp://127.0.0.1:30005)
[fr24feed] 2023-04-16 13:41:54 | BeastBase::connectTcp(): Unable go connect, error: Connection refused[reader][e]Could not connect to tcp://127.0.0.1:30005
 System: Home Assistant OS 9.5  (amd64 / qemux86-64)
 Home Assistant Core: 2023.4.1
 Home Assistant Supervisor: 2023.04.0
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service banner successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[fr24feed] 2023-04-16 13:41:55 | [time][i]Time synchronized correctly, offset -0.000 seconds
[fr24feed] 2023-04-16 13:41:55 | [feed][i]Downloading configuration
[fr24feed] 2023-04-16 13:41:55 | [main][i]Feed Network client started
[fr24feed] 2023-04-16 13:41:55 | [feed][d]fetching configuration
[fr24feed] 2023-04-16 13:41:55 | [feed][i]configuring decoder
[fr24feed] 2023-04-16 13:41:55 | [feed][c]Max range AIR: 350.0nm
[fr24feed] 2023-04-16 13:41:55 | [feed][c]Max range GND: 100.0nm
[fr24feed] 2023-04-16 13:41:55 | [feed][i]configuration changed
[fr24feed] 2023-04-16 13:41:55 | [feed][i]defined 3 servers
[fr24feed] 2023-04-16 13:41:55 | [feed][c]Timestamps: optional
[fr24feed] 2023-04-16 13:41:55 | 23-04-16 13:41:55.307 [I][receiver_ac_sender.cpp:137] Stopping ReceiverACSender threads for feed 
[fr24feed] 2023-04-16 13:41:55 | 23-04-16 13:41:55.307 [D][receiver_ac_sender.cpp:141] Stop called on non-running network thread for feed 
[fr24feed] 2023-04-16 13:41:55 | 23-04-16 13:41:55.307 [I][receiver_ac_sender.cpp:96] Configured ReceiverACSender: 185.218.24.22:8099,185.218.24.23:8099,185.218.24.24:8099, feed: EGHH162, send_interval: 5s/1s, max age: 15s, send metadata: true, mode: 1, filtering: true
[fr24feed] 2023-04-16 13:41:55 | [feed][n][email protected]:8099/UDP
[fr24feed] 2023-04-16 13:41:55 | [feed][n]connecting
[fr24feed] 2023-04-16 13:41:55 | 23-04-16 13:41:55.307 [I][receiver_ac_sender.cpp:36] Network thread connecting to 185.218.24.22:8099 for feed EGHH162
[fr24feed] 2023-04-16 13:41:55 | 23-04-16 13:41:55.307 [I][crxstats.cpp:588] [stats]Stats thread started
[fr24feed] 2023-04-16 13:41:55 | [feed][n]connected via UDP (fd 24)
[fr24feed] 2023-04-16 13:41:55 | [feed][n]working
[fr24feed] 2023-04-16 13:41:59 | [reader][i]Connecting to unknown receiver via (tcp://127.0.0.1:30005)
[fr24feed] 2023-04-16 13:41:59 | BeastBase::connectTcp(): Unable go connect, error: Connection refused[reader][e]Could not connect to tcp://127.0.0.1:30005
[fr24feed] 2023-04-16 13:42:04 | [reader][i]Connecting to unknown receiver via (tcp://127.0.0.1:30005)
[fr24feed] 2023-04-16 13:42:04 | BeastBase::connectTcp(): Unable go connect, error: Connection refused[reader][e]Could not connect to tcp://127.0.0.1:30005

Hello All.
My setup:
Home Assistant installed on an Intel NUC. On this NUC only Home Assistant is running.
I have installed the addon ADS-B Multi-Portal Feeder. The Sharing Key from Flightradar24 I have received and stored in the configuration.
I have plugged the NooElec NESDR stick directly into a USB port of the NUC.

What do I have to do to use the stick on the NUC in Home Assistant. I installed HA without Docker.
I am missing a starting point. Any idea is welcome.
Thank you very much

I installed it 2 days ago. I have it running with FlightRadar24, FlightAware shows me the planes locally on the map, but I can’t share the flights FlightAware doesn’t detect my installation. I claim the installation and it returns the message.
Unfortunately, FlightAware hasn’t found a new, unclaimed PiAware feeder to claim.

Hello,

Any idea how to deal with multiple hex codes? I have implemented this (thank you!) but I any get the “parent” hex, not the list.

Can someone please help me? ADS-B Multi Portal Feeder is running fine so far. Unfortunately, I can’t get the sharing key for Radarbox. I have tried everything. It just does not work. What can I do.

Log-File:
[radarbox-feeder] [2023-06-27 11:25:14] Starting RBFeeder Version 1.0.8 (build 20220708190411)
[radarbox-feeder] [2023-06-27 11:25:14] Using configuration file: /etc/rbfeeder.ini
[radarbox-feeder] [2023-06-27 11:25:14] Network-mode enabled.
[radarbox-feeder] [2023-06-27 11:25:14] Remote host to fetch data: 127.0.0.1
[radarbox-feeder] [2023-06-27 11:25:14] Remote port: 30005
[radarbox-feeder] [2023-06-27 11:25:14] Remote protocol: BEAST

[radarbox-feeder] [2023-06-27 11:25:14] Using GNSS (when available)

[radarbox-feeder] [2023-06-27 11:25:14] Start date/time: 2023-06-27 11:25:14
[radarbox-feeder] [2023-06-27 11:25:14] Socket for ANRB created. Waiting for connections on port 32088

[radarbox-feeder] [2023-06-27 11:25:16] Connection established.
[radarbox-feeder] [2023-06-27 11:25:16] Empty sharing key. We will try to create a new one for you!
[radarbox-feeder] [2023-06-27 11:25:16] CPU Serial empty. Use MAC address instead.

[radarbox-feeder] [2023-06-27 11:25:16] Error creating new Sharing-Key: Could not create sharing-key

[radarbox-feeder] [2023-06-27 11:26:14] ******** Statistics updated every 60 seconds ********
[radarbox-feeder] [2023-06-27 11:26:14] Packets sent in the last 60 seconds: 1, Total packets sent since startup: 1
[radarbox-feeder] [2023-06-27 11:26:14] Data sent: 21 B
[radarbox-feeder] [2023-06-27 11:26:14] Data received: 37 B

etc.

when i try this I get no output. I got a waiting cursor in the terminal only.

docker run -it --rm
-e “SERVICE_ENABLE_RADARBOX=true”
-e “SERVICE_ENABLE_DUMP1090=false”
-e “SERVICE_ENABLE_HTTP=false”
-e “SERVICE_ENABLE_PIAWARE=false”
-e “SERVICE_ENABLE_FR24FEED=false”
-e “HTML_SITE_LAT=45”
-e “HTML_SITE_LON=9”
-e “HTML_SITE_ALT=0”
thomx/fr24feed-piaware /bin/bash

I also can’t get the ADSBEXCHANGE_UUID.

Stop feeding the clowns of adsbexchange :wink:

I tried to get the key again and after 2 days it worked now. I got my key. ADSBFI Mlat on / Radarbox Mlat Off. This brought me the key. Radarbox support told me that there seems to be a problem

who can help?

[radarbox-feeder] Traceback (most recent call last):
[radarbox-feeder] File “/usr/local/share/radarbox-mlat-client/venv/bin/mlat-client”, line 22, in
[radarbox-feeder] import mlat.client.version
[radarbox-feeder] ModuleNotFoundError: No module named ‘mlat’

Radarbox support told me to try this. I guess supo apt wont work

sudo apt purge mlat-client
sudo apt update -y
sudo apt install -y git curl build-essential debhelper python-dev python3-dev
cd
git clone GitHub - mutability/mlat-client: Mode S multilateration client

cd mlat-client
sudo apt install -y dh-python
sudo dpkg-buildpackage -b -uc

cd
sudo dpkg -i mlat-client_*.deb

This was fixed at the upstream with release 1.27.1 - see

and

I am waiting for their images to be built, and will release on my side as 1.27.1.1 - including new sensors <3

1 Like

thank you Max :slight_smile: