Skip to content
The Aircraft Radar skill for Amazon Alexa uses live data from ADS-B Exchange to tell you what airplanes are around.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
icon
mock-events
scripts
skill
tmp
www
.gitignore
AlexaDeviceAddressClient.js
LICENSE
README.md
adsb-query.js
alexa-response-builder.js
aviation-formatting.js
geocode.js
index.js
mock-locations.js
package-lock.json
package.json
skyview.js

README.md

Aircraft Radar skill for Amazon Alexa

The Aircraft Radar skill for Amazon Alexa uses live ADS-B radio signals, collected by volunteers, to tell you what airplanes are around you.

This top-level README covers technical topics relevant to development of the skill codebase.

Requirements

Node v6

This is a standard Node application which requires Node v6. It might work with newer Node versions, but AWS Lambda uses v6.

AWS Lambda

This application is deployed to AWS Lambda. You can probably run it elsewhere, but it’s specifically designed for and tested with Lambda.

Geocoding API

The skill requires my geocoding web service to be deployed, and you’ll need an API key to access it (see “Environment Vars” below).

Aircraft Images API

The skill requires my aircraft images web service to be deployed, and you’ll need an API key to access it (see “Environment Vars” below).

Libraries

Per package.json, in production this application requires alexa-sdk, request, and request-promise.

Development

Install lambda-local

I use lambda-local to run requests locally (with a mocked address in downtown Ann Arbor). Install it via npm install -g lambda-local.

Install dependencies with npm

Install dependencies, including those for development, with npm install.

Set required environment variables in your shell

Once you have an API key for the geocoding service and aircraft image service, run . ./scripts/env.sh {KEY} in your shell before running mock requests (see the next step).

(Both APIs currently use the same client API key.)

Run mock requests with lambda-local

package.json defines a script that can be used to run a mock request for every supported intent.

Start by running npm run mock-nearest-aircraft, and see package.json for the full list.

(You’ll have to run this after using env.sh to set required environment variables in your shell.)

Generate utterances programmatically

Use scripts/utterance-gen.py to programmatically generate variants of utterances which can be grafted into the skill JSON file.

Deployment

npm run package will generate a zip file suitable for uploading to AWS Lambda. It’s placed in the products subdirectory.

For convenience when developing on macOS, npm run deploy will generate the zip package, copy its path to the clipboard, and open your web browser to the deployment page.

Environment Vars

  • GEOCODE_API_KEY is the client key for my geocoding web service.
  • IMAGE_API_KEY is the client key for my aircraft images web service.

To set these in your shell for local dev, run . ./scripts/env.sh {KEY}. (Both APIs currently use the same client API key.)

Be nice to ADS-B Exchange

Aircraft data comes from ADS-B Exchange. Be nice to them in the following ways:

Reference Materials

License

The skill’s code and related data (eg. the utterances file) is licensed under GPLv3. See LICENSE.

The skill’s icon is stored in this repository but is not available for use by others under any circumstances.

Author

Chris Dzombak: dzombak.com / @cdzombak / chris@dzombak.com

Inspiration

These links were interesting and inspired me to start on this project, but I wanted something more generally useful and that could use data from all over the place:

You can’t perform that action at this time.