Add ADS-B Multi Portal Feeder (#51)

This commit is contained in:
Max Winterstein
2021-10-10 15:22:02 +02:00
committed by GitHub
parent 9ebec0123a
commit 40beb64370
9 changed files with 183 additions and 0 deletions

View File

@@ -6,6 +6,12 @@ _Everything here is ment to be **experimental**. Happy to see feedback!_
Home Assistant Addon repository containing Home Assistant Addon repository containing
## <img src="adsb-multi-portal-feeder/icon.png" width="40px"> ADB-S Multi Portal Feeder
Observe flight traffic using some cheap ADB-S USB-Stick and feed towards FlightRadar24 and FlightAware.
Based on the incredible [docker-fr24feed-piaware-dump1090](https://github.com/Thom-x/docker-fr24feed-piaware-dump1090) docker image by [Thom-x](https://github.com/Thom-x).
## <img src="eufy-ha-mqtt-bridge/icon.png" width="40px"> Eufy Home Assistant MQTT Bridge ([matijse/eufy-ha-mqtt-bridge](https://github.com/matijse/eufy-ha-mqtt-bridge)) ## <img src="eufy-ha-mqtt-bridge/icon.png" width="40px"> Eufy Home Assistant MQTT Bridge ([matijse/eufy-ha-mqtt-bridge](https://github.com/matijse/eufy-ha-mqtt-bridge))
Forwards Eufy Security push notifications to Home Assistant via MQTT. Forwards Eufy Security push notifications to Home Assistant via MQTT.

View File

@@ -0,0 +1,5 @@
# Changelog
## [1.0.0] - 2021-01-03
- Initial release

View File

@@ -0,0 +1,22 @@
FROM thomx/fr24feed-piaware:1.7.0
# add bashio (thx https://github.com/hassio-addons/addon-debian-base/blob/main/base/Dockerfile#L47)
ADD https://github.com/hassio-addons/bashio/archive/v0.13.0.tar.gz /tmp/bashio.tar.gz
RUN apt-get update && apt-get install -y curl jq && mkdir /tmp/bashio \
&& tar zxvf \
/tmp/bashio.tar.gz \
--strip 1 -C /tmp/bashio \
\
&& mv /tmp/bashio/lib /usr/lib/bashio \
&& ln -s /usr/lib/bashio/bashio /usr/bin/bashio
# add the options.json to environment variable magic
COPY export-env-from-config.sh /export-env-from-config.sh
RUN find /etc/services.d/ -name run | xargs sed -i '1 a\source /export-env-from-config.sh' && \
find /etc/cont-init.d/ -type f | xargs sed -i '1 a\source /export-env-from-config.sh'
ENV TZ=UTC
# Add the nice banner
ADD https://raw.githubusercontent.com/hassio-addons/addon-debian-base/v5.1.0/base/rootfs/etc/cont-init.d/00-banner.sh /etc/cont-init.d/

View File

@@ -0,0 +1,79 @@
# Home Assistant Add-On: dump1090 based feeder for FlightRadar24 and FlightAware
Add-on to feed ADS-B data from a cheap USB ADS-B Stick (e.g. [Nooelec NESDR Mini](https://www.amazon.com/gp/product/B009U7WZCA)) to FlightRadar24 or FlightAware.
![screenshot](https://github.com/MaxWinterstein/homeassistant-addons/blob/main/adsb-multi-portal-feeder/images/screenshot.png)
## Prolog
This Add-On is based on the incredible [docker-fr24feed-piaware-dump1090](https://github.com/Thom-x/docker-fr24feed-piaware-dump1090) docker image by [Thom-x](https://github.com/Thom-x).
I just added a few sprinkles to make it work with Home Assistant.
## Sensors for Home Assistant
If you would like some nice statistics you can use a rest sensor with some template magic to show e.g. the number of aircrafts currently tracked:
![sensor aircraft tracked](https://github.com/MaxWinterstein/homeassistant-addons/blob/main/adsb-multi-portal-feeder/images/sensor_aircraft_tracked.png)
<figure>Example of 'Aircrafts tracked' sensor</figure>
See this [Home Assistant Community post](https://community.home-assistant.io/t/flightradar24-as-an-add-on/75081).
Just replace the `<raspberry pi>` ip with
```yaml
resource: http://f1c878cb-adsbmultiportalfeeder:8754/monitor.json
```
## Configuration
The whole configuration is meant to work alike the original docker image.
See [docker-fr24feed-piaware-dump1090](https://github.com/Thom-x/docker-fr24feed-piaware-dump1090) for more info.
I pre-provivde the (i guess) most used workflow: Send data from USB ADB-S stick to FlightRadar24 and FlightAware and have a nice little web based overview as Home Assistant menu entry.
### FlightAware Feeder ID / FlightRader24 KEY
There are multiple options to obtain the needed keys to supply data towards the platforms.
Running the original image as interactive docker container is one of them.
Either on your local machine, or e.g. the Home Assistant addon [SSH & Web Terminal
](https://github.com/hassio-addons/addon-ssh).
See [docker-fr24feed-piaware-dump1090](https://github.com/Thom-x/docker-fr24feed-piaware-dump1090) for more info.
### Latitude / Longitude
You can
- Use Google Maps for this: Go to https://www.google.com/maps/ and just right click at your house. It should display the lat/long
- Find it through some website: https://latitudelongitude.org/
### All the other things through envrironment variables
If you want to do anything more fancy feel free to just add the corresponding environment variable as config option.
You might need to press the three little dots in the upper right corner and choose `Edit in YAML`.
E.g.: You want to disable the HTTP service to save a few MegaBytes of RAM?
```json
...
SERVICE_ENABLE_HTTP: false
...
```
## Accessing the UI
- This Add-On provides ingress functionality to some nice map of received data.
Simply enable the _Show in sidebar_ function or access vie the _OPEN WEB UI_ button.
- fr24feed (the feeder of FlightRader24) provides some stats at :8754.
You need to add some port mapping at the configuration page to access it.
## Credits:
- Many thanks and ❤️ goes towards [Thom-x](https://github.com/Thom-x) for his work at [docker-fr24feed-piaware-dump1090](https://github.com/Thom-x/docker-fr24feed-piaware-dump1090)
- Icon from https://favpng.com/png_view/airplane-airplane-flightradar24-android-png/HFYfZ5Dy
## TODO
- Checkout https://github.com/wiedehopf/tar1090
- Use prebuild docker images. Tried whole evening but multi-arch is a pain in that case.

View File

@@ -0,0 +1,51 @@
{
"name": "ADS-B Multi-Portal Feeder",
"version": "0.1.32",
"stage": "experimental",
"ximage": "maxwinterstein/homeassistant-addon-adsbmultiportalfeeder-{arch}",
"slug": "adsb-multi-portal-feeder",
"description": "Dump1090 based feeder for FlightRadar24 and FlightAware",
"url": "https://github.com/MaxWinterstein/homeassistant-addons/",
"ingress": true,
"ingress_port": 8080,
"panel_title": "ADS-B Feeder",
"panel_icon": "mdi:airplane",
"arch": ["armhf", "armv7", "aarch64", "amd64"],
"boot": "auto",
"options": {
"SERVICE_ENABLE_FR24FEED": false,
"FR24FEED_FR24KEY": "",
"PIAWARE_FEEDER_DASH_ID": "",
"SERVICE_ENABLE_PIAWARE": false,
"HTML_SITE_LAT": 50.033056,
"HTML_SITE_LON": 8.570556
},
"schema": {
"SERVICE_ENABLE_FR24FEED": "bool",
"FR24FEED_FR24KEY": "str?",
"SERVICE_ENABLE_PIAWARE": "bool",
"PIAWARE_FEEDER_DASH_ID": "str?",
"HTML_SITE_LAT": "float?",
"HTML_SITE_LON": "float?"
},
"hassio_api": false,
"usb": true,
"ports": {
"8080/tcp": null,
"8754/tcp": null,
"30001/tcp": null,
"30002/tcp": null,
"30003/tcp": null,
"30004/tcp": null,
"30005/tcp": null
},
"ports_description": {
"8080/tcp": "Dump1090 status site",
"8754/tcp": "Flightrader24 feeder status site",
"30001/tcp": "TCP raw input",
"30002/tcp": "TCP raw output",
"30003/tcp": "TCP BaseStation output",
"30004/tcp": "TCP Beast input",
"30005/tcp": "TCP Beast output"
}
}

View File

@@ -0,0 +1,20 @@
#!/bin/bash
#
# As Home Assistant parses the Add-On configuration towards /data/options.json
# we want all its values as environment variables.
#
# This needs to be sourced ($ source $0)
# TODO: Find a way to use bashio and source together
if [ ! -f '/data/options.json' ]; then
echo 'ERROR: /data/options.json not found' >>/dev/stderr
exit 1
fi
# export add-on configuration so it can be sourced and used as login var
for s in $(cat /data/options.json | jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]" ); do
export $s
done

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB