diff --git a/README.md b/README.md index e8c9d8e..24e860c 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,12 @@ _Everything here is ment to be **experimental**. Happy to see feedback!_ Home Assistant Addon repository containing +## 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). + ## 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. diff --git a/adsb-multi-portal-feeder/CHANGELOG.md b/adsb-multi-portal-feeder/CHANGELOG.md new file mode 100644 index 0000000..8b49535 --- /dev/null +++ b/adsb-multi-portal-feeder/CHANGELOG.md @@ -0,0 +1,5 @@ +# Changelog + +## [1.0.0] - 2021-01-03 + +- Initial release diff --git a/adsb-multi-portal-feeder/Dockerfile b/adsb-multi-portal-feeder/Dockerfile new file mode 100644 index 0000000..51540b5 --- /dev/null +++ b/adsb-multi-portal-feeder/Dockerfile @@ -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/ diff --git a/adsb-multi-portal-feeder/README.md b/adsb-multi-portal-feeder/README.md new file mode 100644 index 0000000..ed8eea8 --- /dev/null +++ b/adsb-multi-portal-feeder/README.md @@ -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) + +
Example of 'Aircrafts tracked' sensor
+ +See this [Home Assistant Community post](https://community.home-assistant.io/t/flightradar24-as-an-add-on/75081). +Just replace the `` 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. diff --git a/adsb-multi-portal-feeder/config.json b/adsb-multi-portal-feeder/config.json new file mode 100644 index 0000000..1adc8b3 --- /dev/null +++ b/adsb-multi-portal-feeder/config.json @@ -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" + } +} diff --git a/adsb-multi-portal-feeder/export-env-from-config.sh b/adsb-multi-portal-feeder/export-env-from-config.sh new file mode 100644 index 0000000..baa141a --- /dev/null +++ b/adsb-multi-portal-feeder/export-env-from-config.sh @@ -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 \ No newline at end of file diff --git a/adsb-multi-portal-feeder/icon.png b/adsb-multi-portal-feeder/icon.png new file mode 100644 index 0000000..188f06c Binary files /dev/null and b/adsb-multi-portal-feeder/icon.png differ diff --git a/adsb-multi-portal-feeder/images/screenshot.png b/adsb-multi-portal-feeder/images/screenshot.png new file mode 100644 index 0000000..81e5e31 Binary files /dev/null and b/adsb-multi-portal-feeder/images/screenshot.png differ diff --git a/adsb-multi-portal-feeder/images/sensor_aircraft_tracked.png b/adsb-multi-portal-feeder/images/sensor_aircraft_tracked.png new file mode 100644 index 0000000..fded1dd Binary files /dev/null and b/adsb-multi-portal-feeder/images/sensor_aircraft_tracked.png differ