GithubHelp home page GithubHelp logo

sdr-enthusiasts / docker-adsbexchange Goto Github PK

View Code? Open in Web Editor NEW
70.0 70.0 16.0 298 KB

Feeds ADS-B data into adsbexchange.com. Designed to work with mikenye/readsb-protobuf.

License: MIT License

Python 19.43% Shell 45.68% Dockerfile 34.89%
ads-b adsb adsb-exchange adsbexchange mlat readsb

docker-adsbexchange's People

Contributors

dependabot[bot] avatar dipalo avatar fredclausen avatar github-actions[bot] avatar growse avatar mikenye avatar rk295 avatar shoginn avatar wiedehopf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

docker-adsbexchange's Issues

Problem with mlat-client

Hello, first of all a big thanks for these create containers!
But as the title suggest, I've got an issue with the mlat-client. It constantly spams with "outlier detected". I've tried to tweak some configuration but with no luck so far.
image
Could you give some pointers on what could be wrong?

Piece out of my compose file:

  adsbexchange:
    image: ghcr.io/sdr-enthusiasts/docker-adsbexchange:latest
    tty: true
    container_name: adsbx
    restart: always
    networks:
      - adsbnet
    environment:
      - BEASTHOST=readsb
      - TZ=Europe/Brussels
      - LAT=xxx
      - LONG=xxx
      - ALT=xxx
      - SITENAME=aircrafts
      - UUID=xxxxxxxxx
      - PRIVATE_MLAT=true
    tmpfs:
      - /run:rw,nosuid,nodev,exec,relatime,size=64M,uid=1000,gid=1000```

Docker Run has error

docker run \
 -d \
 --rm \
 --name adsbx \
 -e TZ="YOUR_TIMEZONE" \
 -e BEASTHOST=beasthost \
 -e TZ=Australia/Perth \
 -e LAT=-33.33333 \
 -e LONG=111.11111 \
 -e ALT=50m \
 -e SITENAME=My_Cool_ADSB_Receiver
 -e UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
 mikenye/adsbexchange

SITENAME and UUID should have backslash at end of lines.

This is my first time interacting on github. I'm sorry if I am not doing it right.

Container reports unhealthy despite active connection to adsbexchange

Container reports unhealthy despite active connection to adsbexchange

Reporting 278 failures over 10 days

adsbexchange-feed last updated: 1609819993, now: 1609819993.583016405, delta: .583016405. HEALTHY
total aircraft: 15. HEALTHY
no established beast connection to feed.adsbexchange.com:30004. UNHEALTHY
no established mlat connection to feed.adsbexchange.com:31090. UNHEALTHY
listening for beast connections on port 30005. HEALTHY
listening for mlat connections on port 30105. HEALTHY
adsbexchange-feed error deaths: 0. HEALTHY
adsbexchange-stats error deaths: 0. HEALTHY
healthcheck error deaths: 0. HEALTHY
mlat-client error deaths: 0. HEALTHY

ADSB Exchange thinks everything is going great despite "no established beast connection" in healthcheck above

Data incoming from: ####
Route: beast.front
Backend: beast.back
Connected: beast-ingress.01
Age: 23h53m


Data incoming from: ####
Route: mlat.front
Backend: mlat_back_1b
Connected: mlat1b
Age: 18h9m

Restarted the container, healthcheck started failing within 12 hours.

I haven't worked a lot with docker healthchecks so this might be my inexperience showing? Why does adsbx think my connection is steady for hours but docker thinks beat +/ mlat is down?

mlat-client connection issue

Hi -- this looks similar to #61
this message constantly repeats

[mlat-client] Connected to multilateration server at feed1.adsbexchange.com:31090, handshaking
[mlat-client] Lost connection to feed1.adsbexchange.com:31090
[mlat-client] Reconnecting in 7.2 seconds
[mlat-client] Connected to multilateration server at feed2.adsbexchange.com:64590, handshaking
[mlat-client] Lost connection to feed2.adsbexchange.com:64590
[mlat-client] Reconnecting in 7.3 seconds
[mlat-client] Connected to multilateration server at feed1.adsbexchange.com:31090, handshaking
[mlat-client] Lost connection to feed1.adsbexchange.com:31090
[mlat-client] Reconnecting in 8.4 seconds

The machine is an RPI with FA dongle. It's running docker images:
ghcr.io/sdr-enthusiasts/docker-readsb-protobuf:latest

A piaware image
ghcr.io/sdr-enthusiasts/docker-piaware:latest

And the adsbexchange image
ghcr.io/sdr-enthusiasts/docker-adsbexchange:latest

I do get MLAT connections from piaware logs:

[piaware] 2023/05/03 09:08:09 mlat-client(368): Aircraft: 15 of 27 Mode S, 35 of 52 ADS-B used
[piaware] 2023/05/03 09:23:09 mlat-client(368): Receiver status: connected
[piaware] 2023/05/03 09:23:09 mlat-client(368): Server status:   synchronized with 498 nearby receivers
[piaware] 2023/05/03 09:23:09 mlat-client(368): Receiver:  717.3 msg/s received      116.0 msg/s processed (16%)
[piaware] 2023/05/03 09:23:09 mlat-client(368): Server:      0.1 kB/s from server    0.0kB/s TCP to server     1.3kB/s UDP to server
[piaware] 2023/05/03 09:23:09 mlat-client(368): Results:  58.7 positions/minute
[piaware] 2023/05/03 09:23:09 mlat-client(368): Aircraft: 10 of 24 Mode S, 37 of 51 ADS-B used
[piaware] 2023/05/03 09:38:09 mlat-client(368): Receiver status: connected
[piaware] 2023/05/03 09:38:09 mlat-client(368): Server status:   synchronized with 455 nearby receivers

Do you have any ideas?

health_from_adsbexchange throws KeyError for 'stats-uuid'

I am running the adsb-exchange container via "docker run", feeding all the environment variables that are referenced in the compose file. Every few minutes, I see following error:

Apr 18 23:19:23 wallaby run.sh[30718]: [healthcheck]
Apr 18 23:19:23 wallaby run.sh[30718]: Traceback (most recent call last):
Apr 18 23:19:23 wallaby run.sh[30718]:   File "/scripts/health_from_adsbexchange.py", line 17, in <module>
Apr 18 23:19:23 wallaby run.sh[30718]:     if stats_json['stats-uuid'].lower() == 'not found':
Apr 18 23:19:23 wallaby run.sh[30718]: KeyError: 'stats-uuid'
Apr 18 23:19:24 wallaby run.sh[30718]: [adsbexchange-feed] Statistics: Sun Apr 18 23:04:23 2021 CEST - Sun Apr 18 23:19:24 2021 CEST

Non-privileged option?

I'm interested in using a container like this to feed ADSB Exchange, but it looks like the dependency on s6 prevents running as non-root. Have you put any thought into what it would take to run as a normal user?

Lost connection to feed.adsbexchange.com

Hi everyone,
I am having trouble recently in reporting to ADSBExchange:

[mlat-client] Connected to multilateration server at feed.adsbexchange.com:31090, handshaking
[mlat-client] Lost connection to feed.adsbexchange.com:31090
[mlat-client] Reconnecting in 10.7 seconds
[mlat-client] Connected to multilateration server at feed.adsbexchange.com:64590, handshaking
[mlat-client] Lost connection to feed.adsbexchange.com:64590
[mlat-client] Reconnecting in 14.9 seconds

I am running the latest docker image on a raspberrypi4
Here is my docker compose:

adsbexchange:
    image: mikenye/adsbexchange
    tty: true
    container_name: adsbx
    restart: always
    environment:
      - BEASTHOST=readsb
      - TZ="Europe/Brussels"
      - LAT=y.yyyy
      - LONG=x.xxxx
      - ALT=21m
      - SITENAME=receiver_name
      - UUID=XXXXX-XXXXX-XXXXXX
    tmpfs:
      - /run:rw,nosuid,nodev,exec,relatime,size=64M,uid=1000,gid=1000

does anyone know how to diagnose this problem?
Thanks!

Question: mlat-client debug options?

I'm running your containers so far successfully as a stack with readsb-protobuf, adsb-exchange and tar1090. The only thing that doesn't seem to work is MLAT. the status page shows me all green but my station doesn't seem to sync with any peers:
https://adsbx.org/sync/feeder.html?5A&ADSB_VLK

The console output doesn't seem to show any errors. Here's an example:

[adsbexchange-feed]     0 with bad message format or invalid CRC
[adsbexchange-feed]     0 with unrecognized ICAO address
[adsbexchange-feed]     0 accepted with correct CRC
[adsbexchange-feed]     0 accepted with 1-bit error repaired
[adsbexchange-feed] 0 total usable messages
[adsbexchange-feed] 0 surface position messages received
[adsbexchange-feed] 0 airborne position messages received
[adsbexchange-feed] 0 global CPR attempts with valid positions
[adsbexchange-feed] 0 global CPR attempts with bad data
[adsbexchange-feed]   0 global CPR attempts that failed the range check
[adsbexchange-feed]   0 global CPR attempts that failed the speed check
[adsbexchange-feed] 0 global CPR attempts with insufficient data
[adsbexchange-feed] 0 local CPR attempts with valid positions
[adsbexchange-feed]   0 aircraft-relative positions
[adsbexchange-feed]   0 receiver-relative positions
[adsbexchange-feed] 0 local CPR attempts that did not produce useful positions
[adsbexchange-feed]   0 local CPR attempts that failed the range check
[adsbexchange-feed]   0 local CPR attempts that failed the speed check
[adsbexchange-feed] 0 CPR messages that look like transponder failures filtered
[adsbexchange-feed] 0 non-ES altitude messages from ES-equipped aircraft ignored
[adsbexchange-feed] 0 unique aircraft tracks
[adsbexchange-feed] 0 aircraft tracks where only one message was seen
[adsbexchange-feed] CPU load: 0.1%
[adsbexchange-feed]   0 ms for demodulation
[adsbexchange-feed]   0 ms for reading from USB
[adsbexchange-feed]   1023 ms for network input and background tasks
[healthcheck] 
[healthcheck] Feeder 'ADSB_VLK', UUID 'xxx':
[healthcheck] Online statistics at: https://www.adsbexchange.com/api/feeders/?feed=xxx
[healthcheck] 
[healthcheck] Beast data feeding OK
[healthcheck]   - Data Incoming From: xxx.xxx.xxx.xxx
[healthcheck]   - Route:Port: beast.front
[healthcheck]   - Backend: beast.back
[healthcheck]   - Connected: beast-ingress.01
[healthcheck]   - Age: 2h14m
[healthcheck] 
[healthcheck] MLAT data feeding OK
[healthcheck]   - Data Incoming From: xxx.xxx.xxx.xxx
[healthcheck]   - Route:Port: mlat.front
[healthcheck]   - Backend: mlat.back.5a
[healthcheck]   - Connected: mlat5a
[healthcheck]   - Age: 2h29m
[healthcheck] 
[mlat-client] Receiver: connected     4.3 msg/s received        0.0 msg/s processed (0%)
[mlat-client] Server:   ready         0.0 kB/s from server      0.0 kB/s to server
[mlat-client] Results:  0.0 positions/minute
[mlat-client] Aircraft: 0 of 0 Mode S, 0 of 0 ADS-B used
[adsbexchange-feed] Statistics: Sat Jun 19 15:27:25 2021 UTC - Sat Jun 19 15:42:26 2021 UTC
[adsbexchange-feed] Messages from network clients:
[adsbexchange-feed]   4277 Mode A/C messages received
[adsbexchange-feed]   124 Mode S messages received
[adsbexchange-feed]     0 with bad message format or invalid CRC
[adsbexchange-feed]     0 with unrecognized ICAO address
[adsbexchange-feed]     124 accepted with correct CRC
[adsbexchange-feed]     0 accepted with 1-bit error repaired
[adsbexchange-feed] 124 total usable messages
[adsbexchange-feed] 0 surface position messages received
[adsbexchange-feed] 12 airborne position messages received
[adsbexchange-feed] 7 global CPR attempts with valid positions
[adsbexchange-feed] 0 global CPR attempts with bad data
[adsbexchange-feed]   0 global CPR attempts that failed the range check
[adsbexchange-feed]   0 global CPR attempts that failed the speed check
[adsbexchange-feed] 0 global CPR attempts with insufficient data
[adsbexchange-feed] 2 local CPR attempts with valid positions
[adsbexchange-feed]   2 aircraft-relative positions
[adsbexchange-feed]   0 receiver-relative positions
[adsbexchange-feed] 3 local CPR attempts that did not produce useful positions
[adsbexchange-feed]   0 local CPR attempts that failed the range check
[adsbexchange-feed]   0 local CPR attempts that failed the speed check
[adsbexchange-feed] 0 CPR messages that look like transponder failures filtered
[adsbexchange-feed] 0 non-ES altitude messages from ES-equipped aircraft ignored
[adsbexchange-feed] 1 unique aircraft tracks
[adsbexchange-feed] 0 aircraft tracks where only one message was seen
[adsbexchange-feed] CPU load: 0.1%
[adsbexchange-feed]   0 ms for demodulation
[adsbexchange-feed]   0 ms for reading from USB
[adsbexchange-feed]   1077 ms for network input and background tasks
[healthcheck] 
[healthcheck] Feeder 'ADSB_VLK', UUID 'xxx':
[healthcheck] Online statistics at: https://www.adsbexchange.com/api/feeders/?feed=xxx
[healthcheck] 
[healthcheck] Beast data feeding OK
[healthcheck]   - Data Incoming From: xxx.xxx.xxx.xxx
[healthcheck]   - Route:Port: beast.front
[healthcheck]   - Backend: beast.back
[healthcheck]   - Connected: beast-ingress.01
[healthcheck]   - Age: 2h29m
[healthcheck] 
[healthcheck] MLAT data feeding OK
[healthcheck]   - Data Incoming From: xxx.xxx.xxx.xxx
[healthcheck]   - Route:Port: mlat.front
[healthcheck]   - Backend: mlat.back.5a
[healthcheck]   - Connected: mlat5a
[healthcheck]   - Age: 2h44m
[healthcheck] 
[mlat-client] Receiver: connected     4.9 msg/s received        0.0 msg/s processed (1%)
[mlat-client] Server:   ready         0.0 kB/s from server      0.0 kB/s to server
[mlat-client] Results:  0.0 positions/minute
[mlat-client] Aircraft: 0 of 0 Mode S, 0 of 0 ADS-B used

I couldn't find any documentation for the mlat client or any debugging options. Could you please advise how to enable additional debugging output or where to start debugging?

Compile the ADSBX feeder client using READSB

Compile the ADSBX feeder using READSB

git clone --depth 1 https://github.com/Mictronics/readsb.git
cd readsb
make RTLSDR=yes

/usr/bin/readsb --net --net-only --quiet
--net-beast-reduce-interval 1
--net-connector feed.adsbexchange.com,30005,beast_reduce_out
--net-connector localhost,30005,beast_in
--net-ro-interval 0.5 --net-ri-port 0 --net-ro-port 0
--net-sbs-port 0 --net-bi-port 0 --net-bo-port 0

Add sanity check for Altitude

  • Ensure, if positive we have m or ft suffix.
  • Ensure, if negative there is no suffix, but warn user it’s being interpreted as metres.

Error in Health Check script

I have the following error in the logs every 15 minutes:
Traceback (most recent call last): File "/scripts/health_from_adsbexchange.py", line 9, in <module> stats_json = json.loads(stats_raw.decode('utf-8')) File "/usr/lib/python3.9/json/__init__.py", line 346, in loads return _default_decoder.decode(s) File "/usr/lib/python3.9/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.9/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

The issue seems to be with the health check script. When accessing the web page: http://www.adsbexchange.com/myip/ I get the following page
myip screenshot

Here is the source code of this code that apparently fail JSON decode (IP address and Feeder ID redacted)
page.txt

latest_nohealthcheck image is failing

when running the latest_nohealthcheck tag I got this error message

[adsbexchange-stats] /usr/local/bin/json-status: line 299: vcgencmd: command not found

tag 20201113_nohealthcheck is working fine

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.