LemursEye
Documentation
Platform

Insight Engine: how it works

The brain between positions and actions

The Insight Engine is the streaming logic that turns a firehose of positions into a handful of things worth your attention. It segments trips by real movement, evaluates geofences with hysteresis so borders do not flap, runs your rules per vehicle or group, and deduplicates with a cooldown so one event is one alert. It is exception-based by design: silence means all normal.

The parts

1. Position event

events.domain

The enriched position, vehicle, tenant, status, telemetry, is the input to every block below.

2. Trip segmentation

trips · displacement-based

A trip continues while the vehicle actually moves and ends when it dwells; time gaps are bridged. Idle is counted only with the engine on.

3. Geofences

geofence.entered · geofence.exited

Circles and polygons you draw; a two-fix hysteresis and dwell time so a vehicle parked on a border does not generate a storm.

4. Rules

speeding · idle · after_hours · geofence · low_battery · sos

Per tenant, per vehicle or group, with thresholds and active time windows. Changes are live within a minute, no redeploy.

5. Cooldown

valkey · dedupe

The same condition on the same vehicle raises one alert, not one per position. SOS is never suppressed for long.

6. Outputs

alerts.outbound

In-app alert centre and email today; the digest consumes the same stream; webhooks and WhatsApp follow.

Build on it

The same data is available over the API and the live socket.