Alerts and watch rules
Alerts notify people outside the console when the rig sees or hears something. There are two kinds:
- Detection alerts fire when the camera pipeline confirms a tracked object of a type you chose, such as a drone.
- SIGINT watch rules fire when the radios hear something you care about, such as “mayday” on ATC or a drone’s Remote ID broadcast.
Both kinds go out through the same delivery channels. Both appear in the same audit trail.
Open Admin → Alerts. Admins can change everything on this page. Auditors can view it, but can’t edit it. The page reads “Read-only (auditor) — channel settings are visible but not editable.”
Master switch
The Master section has one switch. It reads Alerting enabled or Alerting disabled.
Alerting is off on a new install. Nothing is sent — not detection alerts, and not watch rules — until you turn it on.
Next to the switch, the page shows how channel secrets (passwords, tokens, webhook URLs) are stored:
- 🔒 channel secrets encrypted at rest: normal.
- ⚠ secrets stored plaintext — contact DroneTracker support to enable encryption: contact support before you store real credentials.
Delivery channels
Channels are grouped by type. Each one has its own card.
| Group | Channel | Settings on the card |
|---|---|---|
| SMTP host, SMTP port, Security (starttls / tls / none), Username, Password, From address, Recipients (comma-separated) | ||
| Instant Messenger | Slack | Incoming webhook URL |
| Microsoft Teams | Power Automate Workflows URL | |
| Discord | Webhook URL | |
| Telegram | Bot token, Chat ID(s) — comma-separated for multiple | |
| Signal | signal-cli REST URL, Sender number, Recipients (comma-separated) | |
| Provider (twilio / cloud), Account SID / phone-number ID, Auth token, From number, Recipients (comma-separated) | ||
| SMS | SMS | Provider (twilio), Account SID, Auth token, From number, Recipients (comma-separated) |
| Webhook | Webhook | Endpoint URL, HTTP method (POST / PUT), Authorization header value (optional) |
| ATAK | ATAK (CoT) | TAK server host, TAK server port, Protocol (tcp / tls / udp), Callsign |
| RSS / ATOM & Query API | RSS / ATOM feed | Feed access token (optional) |
| Query API | API access token (optional) |
For Microsoft Teams, use a Power Automate “Workflows” URL. The card’s field asks for exactly that.
Configure a channel
- Find the channel’s card.
- Turn its switch to Enabled.
- Under Fire on object types, tick the object types that should trigger it (see below).
- Fill in the delivery settings.
- Click Save. The card shows saved.
While you have changes that aren’t saved, the card shows unsaved changes.
Secret fields (passwords, tokens, webhook URLs) are password boxes. Once a secret is stored, the field shows dots, with the note “configured — leave the dots to keep it”.
- To keep the stored value, leave the dots.
- To replace it, type a new value.
- To remove it, clear the field.
A secret that has never been set reads “not set”.
Send a test
Click Send test on a card to check the channel end to end. The result appears under the buttons:
- ✓ followed by details: the message was delivered.
- ✕ followed by the reason: it was not delivered.
Send test uses the last saved settings. If you changed something, click Save first. The card reminds you: “Send test uses the last saved settings — save first to test new values.”
Which object types trigger a channel
Each channel has its own Fire on object types list. For example, you can send SMS only for drones, and email for everything.
| Object type | Fires when |
|---|---|
| Airplane | The pipeline confirms an airplane. |
| Drone | The pipeline confirms a drone. |
| Helicopter | The pipeline confirms a helicopter. |
| UAP | The pipeline confirms an unidentified aerial object. |
| Temperature | The rig gets too hot. This is offered only on rigs that support thermal alerts. It comes from the rig’s temperature monitor, not from detections. |
A channel with no types ticked sends no detection alerts. It can still send watch-rule alerts (see below).
Limits on detection alerts
Detection alerts are limited so a busy sky can’t flood your channels:
- each tracked object alerts at most once;
- a detection must reach a minimum alert level (default 1, Tracking);
- there is a cap on how many detection alerts go out per minute (default 20).
The minimum level, the per-minute cap and the temperature thresholds are under Admin → System Settings. Open Advanced, then find the alerts settings. Changes there take effect after the next restart.
SIGINT watch rules
Watch rules alert you when the rig hears something, rather than sees it. They are in the SIGINT watch rules section of Admin → Alerts, and they were added in version 0.2.552.
A watch rule sends alerts only when:
- the master switch is on, and
- at least one delivery channel is enabled.
Add a rule from a preset
Choose a starting point from + Add a watch rule…. Every field stays editable.
| Preset | What it watches | Condition |
|---|---|---|
| Law enforcement — hijack or emergency on the radio | ATC voice + datalink | Phrases such as “hijack”, “unlawful interference”, “squawk 7500”, “seven five hundred”, “squawk 7700”, “lost comms”, “mayday”, “pan pan”, “declaring an emergency” |
| Fire / rescue — mechanical emergency | ATC voice + datalink | Phrases such as “engine failure”, “engine fire”, “smoke in the cockpit”, “emergency landing”, “hydraulic failure”, “fuel emergency”, “minimum fuel”, “souls on board”, “mayday”, “pan pan” |
| Aircraft above 50,000 ft with no callsign | ADS-B | Aircraft at or above 50,000 ft with no callsign. Repeats at most every 60 minutes. |
| Aircraft squawking an emergency code (7500 / 7600 / 7700) | ADS-B | The transponder code is 7500 (hijack), 7600 (radio failure) or 7700 (general emergency). Repeats at most every 30 minutes. Added in 0.2.553. |
| Private security — any drone (with a map link) | Remote ID drones | Anything heard. Repeats at most every 30 minutes. When the drone reports a position, the alert includes a map link. |
| Custom rule | ATC voice + datalink | A blank phrase list for you to fill in. |
Rule settings
| Field | What it does |
|---|---|
| Name | Shown in the rule list and in the alert headline. Required. |
| Watch | Which sources to watch: ATC voice, Datalink (ACARS/VDL2), ADS-B, Remote ID drones. Pick at least one. |
| Condition | Text mentions any of these phrases; Aircraft at or above an altitude with no callsign; Aircraft squawking 7500 / 7600 / 7700; or Anything heard. |
| Phrases (one per line) | Shown for the phrases condition. Add at least one. |
| At or above (ft) | Shown for the altitude condition. 1 to 200,000 ft. |
| Repeat alerts at most every (minutes) | The cooldown. It counts per rule and per source (each callsign, each drone), so one event doesn’t flood the channels. Default 10 minutes. |
| Send to | Which channels to use. None ticked = every enabled channel. A channel marked “(off)” is disabled and won’t send even if you tick it. |
| Rule on | Turns the rule on or off. |
Click Save rule to keep it, or Cancel to throw away your changes.
How phrases match
- Phrases match whole words, in any case. “7500” does not match inside “17500”.
- Punctuation counts as a space, so “pan pan” also matches “pan-pan”.
- A phrase matches when its words appear together, in order, anywhere in the transcript or message.
Transcripts can be imperfect. Speech-to-text on radio audio often gets numbers and callsigns wrong. List the spoken variants too: for example “squawk 7500” and “seven five hundred”. The presets already do this for the common emergency codes.
The altitude condition uses ADS-B altitude, and it fires only when the aircraft broadcasts no callsign. The rig re-checks live ADS-B and Remote ID every few seconds, so an aircraft that climbs past the threshold after it first appears still triggers the rule.
The emergency-squawk condition reads the transponder code the aircraft broadcasts, so it needs nothing from speech-to-text. The code shows in the SIGINT events table too, and an emergency code is flagged in red. Squawk codes come from the rig’s own ADS-B receiver or a forwarder; aircraft known only from the internet ADS-B feed have no code.
The rule list
Each saved rule shows its name and a one-line summary, for example:
ATC voice + Datalink (ACARS/VDL2) · 16 phrases · at most every 10 min per source · all enabled channels
Use the On switch to turn a rule on or off. Use Edit to change it, or Delete to remove it.
Limits
- At most 10 watch alerts a minute, across all rules. Matches beyond that are not sent, so set your cooldowns and phrase lists with that in mind.
- At most 100 watch rules per rig.
What a watch alert says
The headline reads Watch: rule name — emitter. The emitter is the callsign, tail number or drone ID. The body includes:
- the source and why the rule fired, for example heard “mayday” or at 52000 ft with no callsign;
- the frequency;
- up to 400 characters of the transcript or message;
- a map link, when the event has a position.
Audit trail
The Audit trail section is a record of every outbound alert: what fired, to which channel, and whether it was delivered. Click ⟲ Refresh to reload it.
| Column | Contents |
|---|---|
| Time | When the alert went out. |
| Source | What triggered it: detection, temperature, or sigint (a watch rule). |
| Method | The delivery channel, as a short code, for example EMAIL or WEBHOOK. |
| Class | The object type, or, for a watch rule, the rule’s name. |
| Target | The track, or the emitter (callsign, tail number, drone ID). |
| Outcome | Delivered or failed. |
| Detail | The reason, for a failure. It never contains secrets. |
Send test results show on the card itself. Before any real alert has fired, the section reads “No alerts have fired yet.”
By default, audit entries are kept for 90 days. You can change this under Admin → System Settings → Advanced.
Related
- The RF view: where operators see the SIGINT events that watch rules match.
- Radios: ADS-B, ATC and datalink: setting up the radios that feed watch rules.
- Accounts and security: roles, including the read-only auditor.