Skip to content

IQTLabs/edgetech-dump1090-json

Repository files navigation

Contributors Forks Stargazers Issues MIT License


edgetech-dump1090-json

This repo builds upon the IQT Labs Edgetech-Core functionality to instantiate an MQTT client that reads aircraft messages from dump1090's web interface JSON file. It publishes each aircraft to a specified MQTT topic. All of this functionality is wrapped in a Docker container for cross-platform compatibility.

Make Contribution · Report Bug · Request Feature

Usage

This module is designed to be used in concert with other modules to build a complete tracking system. SkyScan, which tracks aircraft using ADS-B transmissions, is an example of the type of system that can be built.

Checkout the docker-compose.yml in that repo to see how these modules can be connected together. The configuration for the system is stored in .env environment files. Examples of the different environment files are included in the SkyScan repo and can be configured them to match your setup.

Built With

Python Poetry Docker

Prerequisites

Running this repo requires that you have Docker installed.

Advanced Usage

Spinning up this system requires an MQTT server and this container to be included in your docker-compose.yml. You can find an example of this workflow in this repository's docker-compose.yml. Additionally, some editing of relevant environment variables will be required based upon your system's configuration of topics to subscribe to and MQTT configuration. Examples of these enviornment variables can be found in this repository's .env file.

As this system is meant to be spun up with MQTT topics you would like to write to files, copying the dump1090-json docker-compose statements into a master docker-compose.yml and .env files with your entire system of containers is the preferred workflow. Find an application architecture diagram example of how the usage of this module was envisioned below.

flowchart TD
    dump1090-json(dump1090-json) -- dump1090-json Topic --> mqtt{MQTT}
    mqtt{MQTT} -- Subscribed to dump1090-json Topic --> filesaver(Filesaver)
    mqtt{MQTT} -- Subscribed to dump1090-json Topic -->  couchdbsaver(CouchDB Saver)
    mqtt{MQTT} -- Subscribed to dump1090-json Topic -->  objectledger(Object Ledger)

style mqtt fill:#0072bc,color:#ffffff
style couchdbsaver fill:#F9D308,color:#ffffff
style filesaver fill:#F9D308,color:#ffffff
style objectledger fill:#F9D308,color:#ffffff

Loading

Contributing

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b dev)
  3. Commit your Changes (git commit -m 'adding some feature')
  4. Run (and make sure they pass):
black --diff --check *.py

pylint --disable=all --enable=unused-import *.py

mypy --allow-untyped-decorators --ignore-missing-imports --no-warn-return-any --strict --allow-subclassing-any *.py

If you do not have them installed, you can install them with pip install "black<23" pylint==v3.0.0a3 mypy==v0.991.

  1. Push to the Branch (git push origin dev)
  2. Open a Pull Request

See CONTRIBUTING.md for more information.

License

Distributed under the Apache 2.0. See LICENSE.txt for more information.

Contact IQTLabs

See our other projects: https://github.com/IQTLabs/

(back to top)