adsms/README.md

49 lines
2.1 KiB
Markdown

# adsms
Send SMS aircraft alerts based on ADS-B data
![Screenshot of text sent by adsms](screenshot.jpg)
## Usage
Copy the configuration file, make any necessary changes, and run:
./adsms.py <configuration_file>
## Configuration file
* `textbelt_key`: your [Textbelt](https://textbelt.com) API key
* `data`: a URL to a readsb/tar1090 `aircraft.json` endpoint
* `tracker`: a URL to a tar1090 tracker (e.g. https://globe.theairtraffic.com/)
* `database`: an SQLite file in which to store subscriptions
* `pid_file`: path to which to write the PID (set to empty string to not write
a PID file)
* `max_age`: maximum age of aircraft pings in seconds; pings older than this
will be ignored
* `min_disappearance`: the minimum time in seconds for which an aircraft must
go "off the radar" before disappearing for new pings to trigger notifications
again
* `delay`: time to wait after processing all rules before running the loop
again
## Database Schema
`adsms` uses a SQLite database to store subscriptions and information about tracked aircraft. Currently, the only table is `subscriptions`.
### `subscriptions`
The `subscriptions` table has the following columns:
| Column Name | Data Type | Description |
| ------------- | --------- | -------------------------------------------------------------- |
| `rowid` | INTEGER | Unique identifier for the subscription. |
| `phone` | TEXT | Phone number to receive notifications for this subscription. |
| `icao` | TEXT | ICAO address of the aircraft to track. |
| `description` | TEXT | Description of the aircraft being tracked. |
| `last_seen` | INTEGER | Timestamp of the last time this aircraft was seen by the system.|
This table stores information about each subscription, including the phone number to send notifications to, the ICAO address of the aircraft to track, a description of the aircraft, and the last time it was seen by the system.
## Use of ChatGPT
Portions of both this README and the `adsms` code have been partially written with ChatGPT.