Alert rule types reference
Complete parameter reference for all alert rule types in Blecon Track.
Common properties
Every alert rule has these properties:
| Property | Type | Required | Description |
|---|---|---|---|
rule_name |
string | Yes | Human-readable name for the rule |
rule_type |
string | Yes | One of the types listed below |
parameters |
object | Yes | Rule-specific configuration |
severity |
string | Yes | low, medium, high, or critical |
apply_to_all_devices |
boolean | No | Apply to all devices (default: true) |
device_ids |
array | No | Specific device IDs to monitor (when apply_to_all_devices is false) |
enabled |
boolean | No | Whether the rule is active (default: true) |
Severity levels
| Level | Description |
|---|---|
low |
Informational — routine events, logging |
medium |
Warning — needs attention but not urgent |
high |
Important — needs prompt action |
critical |
Emergency — needs immediate response |
Geofence entry (geofence_entry)
Triggers when a device enters a location.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_id |
string | Yes | — | Zone ID |
min_duration_seconds |
integer | No | 0 | Minimum time inside before triggering |
Geofence exit (geofence_exit)
Triggers when a device leaves a location.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_id |
string | Yes | — | Zone ID |
min_duration_seconds |
integer | No | 0 | Minimum time outside before triggering |
Geofence containment (geofence_containment)
Triggers when a device is outside all allowed locations during specified hours.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_ids |
array | Yes | — | List of allowed location IDs |
check_hours |
string | No | All hours | Time window (e.g., "09:00-17:00") |
check_days |
array | No | All days | Days of week |
timezone |
string | No | UTC | Timezone for time window |
Return to base (return_to_base)
Triggers when a device hasn't returned to base within a time limit.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
base_location_id |
string | Conditional | — | Base location ID. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags |
exclude_zone_ids |
array | No | — | Zone IDs to exclude |
max_away_duration_seconds |
integer | No | 3600 | Maximum away time (1 hour) |
Scheduled return (scheduled_return)
Triggers when a device hasn't returned to base by a daily deadline.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
base_location_id |
string | Conditional | — | Base location ID. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags |
exclude_zone_ids |
array | No | — | Zone IDs to exclude |
return_by_time |
string | Yes | — | Deadline (e.g., "18:00") |
return_by_days |
array | No | All days | Days to check |
timezone |
string | No | UTC | Timezone for deadline |
grace_period_minutes |
integer | No | 0 | Grace period after deadline |
One alert per device per day. Resets at midnight in the configured timezone.
Inactivity (inactivity)
Triggers when a device hasn't reported a position.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
max_inactive_duration_seconds |
integer | No | 3600 | Maximum time without update (1 hour) |
Dwell time (dwell_time)
Triggers when a device stays in a location too long.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_id |
string | Conditional | — | Location to monitor. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags |
exclude_zone_ids |
array | No | — | Zone IDs to exclude |
max_dwell_duration_seconds |
integer | No | 3600 | Maximum dwell time (1 hour) |
Movement detection (movement_detection)
Triggers when a device moves from where it should stay.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
expected_location_id |
string | Conditional | — | Expected location. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags |
check_hours |
string | No | All hours | Time window to monitor |
timezone |
string | No | UTC | Timezone for time window |
min_movement_distance_meters |
integer | No | 0 | Minimum movement distance |
Minimum visit frequency (minimum_visit_frequency)
Triggers when a device hasn't visited a location recently enough.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_id |
string | Conditional | — | Location to visit. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags |
exclude_zone_ids |
array | No | — | Zone IDs to exclude |
min_visit_interval_seconds |
integer | No | 86400 | Maximum time between visits (24 hours) |
Unknown location (unknown_location)
Triggers when a device is at an unregistered location.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
alert_after_seconds |
integer | No | 3600 | Time at unknown location before triggering (1 hour) |
exclude_location_ids |
array | No | — | Locations to exclude from "known" check |
Zone asset count (zone_asset_count)
Triggers when asset count in a location crosses a threshold. This is a location-level rule — one alert per location, not per device.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location_id |
string | Conditional | — | Location to monitor. Use this or zone_tags. |
zone_tags |
array | Conditional | — | Match zones with these tags (evaluated independently) |
exclude_zone_ids |
array | No | — | Zone IDs to exclude |
condition |
string | Yes | — | "below", "above", or "outside_range" |
threshold |
int/object | Yes | — | Number for below/above, {"min": X, "max": Y} for outside_range |
asset_filter |
object | No | All assets | Filter which assets to count |
check_interval_seconds |
integer | No | 300 | Cooldown between alerts (5 minutes) |
Proximity association (proximity_association)
Triggers when two device types come near each other or move apart. Used to auto-create asset associations based on physical proximity.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
child_device_type |
string | Yes | — | Device type of the child asset |
parent_device_type |
string | Yes | — | Device type of the parent asset (must differ from child) |
radius_meters |
number | Yes | — | Proximity radius (0–10,000 meters) |
trigger |
string | No | — | "dwell" or "co_movement" |
dwell_seconds |
integer | Conditional | — | Required when trigger is "dwell". Time in proximity before triggering (1–86,400 seconds). |
co_movement_meters |
number | Conditional | — | Required when trigger is "co_movement". Distance threshold for co-movement detection (1–100,000 meters). |