Skip to content

Rule types reference

Complete parameter reference for all rule types in Blecon Track.

Common properties

Every 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 No notification (default), low, medium, high, or critical
apply_to_all_devices boolean No Apply to all tags (default: true)
device_ids array No Specific tag IDs to monitor (when apply_to_all_devices is false)
enabled boolean No Whether the rule is active (default: true)

Severity levels

Level Description
notification Notify-only (the default): sends a notification, not an alert — nothing to acknowledge or resolve
low Informational alert: routine events, logging
medium Warning alert: needs attention but not urgent
high Important alert: needs prompt action
critical Emergency alert: needs immediate response

Any severity other than notification raises an alert that stays open until resolved.

Geofence entry (geofence_entry)

Triggers when a tag 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 tag 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 tag 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 tag hasn't returned to base within a time limit. Created from the Not where expected rule, in its Away too long mode.

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 tag hasn't returned to base by a daily deadline. Created from the Not where expected rule, in its Not back by a time mode.

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 tag per day. Resets at midnight in the configured timezone.

Inactivity (inactivity)

Triggers when a tag 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 tag 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)

Removed. movement_detection and geofence_containment were the same rule: the position processor put both in one bucket and evaluated them identically. New rules of this type are rejected; use geofence containment.

Rules already stored with this type keep working and are still listed and editable, under the Zone Containment name.

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 tag hasn't visited a location recently enough. Created from the Not where expected rule, in its Not visited recently mode.

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 tag 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 tag.

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 tag types come near each other or move apart. Used to auto-create asset associations based on physical proximity.

The "co_movement" trigger has been removed. It associated two tags once the parent had travelled a distance while the child stayed near, which is travelled together asked at ingest. A rule sending it is now rejected.

Parameter Type Required Default Description
child_device_type string Yes Tag type of the child asset
parent_device_type string Yes Tag type of the parent asset (must differ from child)
radius_meters number Yes Proximity radius (0–10,000 meters)
trigger string No "dwell", or absent to associate as soon as they are within the radius
dwell_seconds integer Conditional Required when trigger is "dwell". Time in proximity before triggering (1–86,400 seconds).

Separation (separation)

Monitors existing asset associations and alerts when a child asset is too far from its parent. Works with any association source (manual, scan, or auto), and is the one way to be alerted about a pair coming apart — the alert_on_separation flag on proximity association rules has been removed, and is dropped from a rule on its next save. For auto-associations, set this rule's radius below the association radius, or the pair is removed before it can fire. Supports an optional grace period: the alert starts as pending and promotes to active after the grace period elapses; if the child returns within the grace period, the pending alert is cleared without sending a notification.

Parameter Type Required Default Description
radius_meters number Yes Maximum allowed distance between child and parent (1–10,000 meters)
grace_period_seconds number No 0 Seconds the child must be out of range before the alert becomes active (up to 24 hours)
child_device_type string No Only monitor children of this asset type
parent_device_type string No Only monitor children of parents of this asset type

Trip completed (trip_completed)

Notifies when an asset finishes a trip, carrying where it went, how far and how long it took. A trip is one movement between two stops. See Trip completed.

Every parameter is optional. A rule with none set notifies on every trip.

Parameter Type Required Default Description
min_distance_meters number No Only trips at least this far (0–1,000,000 m). Trips with no measurable distance are skipped when this is set.
min_duration_seconds number No Only trips that took at least this long (0–2,592,000 s)
destination_zone_id string No Only trips that ended in this zone
origin_zone_id string No Only trips that started in this zone
device_tags array No Only assets carrying at least one of these keywords (up to 10)
exclude_device_tags array No Never assets carrying any of these keywords (up to 10)

What counts as a trip is set per workspace under Tracking then Trips, and can be overridden per asset type.

Trip abandoned (trip_abandoned)

Alerts when an asset stops reporting in the middle of a trip. The trip is closed at the last place the asset was seen, with no destination, once it has been silent for the workspace's abandonment time. See Trip abandoned.

destination_zone_id is rejected: an abandoned trip has no known destination.

Parameter Type Required Default Description
min_distance_meters number No Only trips at least this far (0–1,000,000 m), measured to the last known position
min_duration_seconds number No Only trips that ran at least this long (0–2,592,000 s)
origin_zone_id string No Only trips that started in this zone
device_type string No Only assets of this type
device_tags array No Only assets carrying at least one of these keywords (up to 10)
exclude_device_tags array No Never assets carrying any of these keywords (up to 10)

Trip overdue (trip_overdue)

Alerts when a trip is still in progress longer than expected. A finished trip that took too long is a trip_completed rule with min_duration_seconds. This rule is for the trip that has not come back. See Trip overdue.

destination_zone_id and min_duration_seconds are rejected: a trip in progress has neither.

Parameter Type Required Default Description
max_duration_seconds number Yes Alert once the trip has run this long without arriving (60–2,592,000 s)
origin_zone_id string No Only trips that started in this zone
min_distance_meters number No Only trips at least this far (0–1,000,000 m)
device_type string No Only assets of this type
device_tags array No Only assets carrying at least one of these keywords (up to 10)
exclude_device_tags array No Never assets carrying any of these keywords (up to 10)

Wrong destination (unexpected_destination)

Alerts when a trip ends anywhere other than the zones listed. The inverse of trip_completed's destination_zone_id filter. See Wrong destination.

Parameter Type Required Default Description
allowed_zone_ids array Yes Zones where the trip is expected to end (1–10 zones)
alert_on_unknown boolean No true Also alert when the trip ends outside every zone
origin_zone_id string No Only trips that started in this zone
min_distance_meters number No Only trips at least this far (0–1,000,000 m)
min_duration_seconds number No Only trips that took at least this long (0–2,592,000 s)
device_type string No Only assets of this type
device_tags array No Only assets carrying at least one of these keywords (up to 10)
exclude_device_tags array No Never assets carrying any of these keywords (up to 10)

Unscheduled stop (unscheduled_stop)

Alerts on a long pause inside a trip: a stationary period too short to end the trip, which is therefore invisible in the trip list. One alert per qualifying pause. See Unscheduled stop.

min_pause_seconds must be below the workspace's stop time. A stationary period longer than the stop time is a stop, which ends the trip, so a rule above that number could never fire and is rejected at creation.

Parameter Type Required Default Description
min_pause_seconds number Yes Alert on any pause at least this long (60–86,400 s, and below the workspace stop time)
ignore_zone_ids array No Pauses inside these zones are not reported (up to 10 zones)
device_type string No Only assets of this type
device_tags array No Only assets carrying at least one of these keywords (up to 10)
exclude_device_tags array No Never assets carrying any of these keywords (up to 10)

Out of hours trip (out_of_hours_trip)

Alerts when an asset departs or arrives outside working hours. The parameters describe when travel is expected, and the rule reports what falls outside. Times are read on the local clock at each end of the trip (where it left for a departure, where it arrived for an arrival), so one rule covers a fleet crossing time zones. An end with no timezone is not judged. See Out of hours trip.

Parameter Type Required Default Description
days array No every day Weekdays on which travel is expected, 0 = Monday to 6 = Sunday
start_time string No "08:00" Start of the working window, local HH:MM
end_time string No "18:00" End of the working window, local HH:MM. Set it before start_time for a window that crosses midnight.
trigger_on string No "either" "departure", "arrival" or "either"
origin_zone_id string No Only trips that started in this zone
device_type string No Only assets of this type
device_tags array No Only assets carrying at least one of these keywords (up to 10)
exclude_device_tags array No Never assets carrying any of these keywords (up to 10)

Travelled together (trip_matching)

Records when two tag types made the same trip: each started at a stop, both started at the same place, both finished at the same place, and both arrived within the time window. Creates historical shared trip records rather than alerts.

Matched against stored trips, so the workspace's trip distance decides what counts as having gone anywhere. min_displacement_meters and accuracy_multiplier no longer exist; a rule that still carries them has them dropped on its next save.

Parameter Type Required Default Description
device_type_a string Yes First tag type to match
device_type_b string Yes Second tag type (must differ from type A)
origin_radius_meters number Yes 500 How far apart the two origins may be when neither is a zone (1–10,000 meters)
destination_radius_meters number Yes 500 How far apart the two destinations may be when neither is a zone (1–10,000 meters)
time_window_minutes number Yes 60 How far apart the two arrivals may be (1–1,440 minutes)

Temperature (temperature_threshold)

Alerts when a tag's latest temperature is above a high threshold or below a low threshold. Resolves automatically when the reading returns within range. Thresholds are always stored in Celsius; the workspace unit setting controls how they and the alert message are displayed. See Temperature.

Parameter Type Required Default Description
high_temp_celsius number Conditional Alert above this temperature (°C). Optional if low_temp_celsius is set.
low_temp_celsius number Conditional Alert below this temperature (°C). Optional if high_temp_celsius is set. When both are set, high must be greater than low.
trigger_delay_seconds number No 0 Time the reading must stay out of range before the alert fires (0 = immediate).
auto_resolve boolean No true Resolve automatically when the temperature returns within range.

At least one of high_temp_celsius / low_temp_celsius is required.

Tamper (tamper)

Fires immediately when a monitored tag reports it has been physically detached. Event-driven, with no rule-specific parameters. The tag also carries a clearable tamper state, shown on the asset until cleared. See Tamper.

This rule has only the common properties (severity, tag/type filtering); it has no parameters of its own.

Low battery (low_battery)

Alerts when a tag's latest battery voltage drops below a threshold. Uses a 100 mV recovery buffer: an active alert clears only once voltage rises 0.1 V above the threshold, preventing flapping. See Low battery.

Parameter Type Required Default Description
threshold_voltage_mv number No 2900 Alert when battery voltage falls below this, in millivolts (the rule form edits this in volts).
auto_resolve boolean No true Resolve automatically once voltage recovers above the threshold plus the 100 mV buffer.

Questions? Contact Blecon support — we're happy to help.