Perimeter Slew-to-Cue
Simulated dataIllustrative layout · no deployment
- Unit 1simulatedSNR ———
- Unit 2simulatedSNR ———
- Unit 3simulatedSNR ———
- Unit 4simulatedSNR ———
- Unit 5simulatedSNR ———
No alarms yet.
The SOC watches its own platform, not this page. Each alarm leaves in the form that platform ingests; the newest one is below.
No alarm yet. Press Play.
Any webhook receiver (PSIM, SOAR, a SOC's own service)
HTTPS POST of the nextmag.perimeter.alarm/1 JSON body, one per onset, confirmation, movement update and loss, with the per-track cooldown.
Built: the body, the route (PERIMETER_ALARM_WEBHOOKS) and the cooldown. The receiver's authentication is the site's choice.
Source: lib/perimeter/payloads.ts, lib/perimeter/alarm-delivery.ts
Milestone XProtect
Generic Events: one ASCII record per alarm to the event server's Generic Events data source (the documented example is TCP port 1234; the sender's IP must be on the data source's allowed list; records end with the separator bytes, CR LF by default). An event rule matches the record and raises the alarm, calls the PTZ preset and starts recording.
Built: the record. Not built: the TCP sender and the rules, which are a few minutes of XProtect Management Client work. A MIP SDK plug-in would add the map position; the record carries it as lat/lon in the meantime.
Source: Milestone developer documentation, Generic Events protocol
Genetec Security Center
Web SDK: raise a custom event (one per alarm kind, created once in System settings) on a NextMAG entity; an event-to-action rule raises the alarm, slews the PTZ and bookmarks the video. Needs the Web SDK license part and a Security Center user for the integration.
Built: the JSON the event's payload text carries. Not built: the Web SDK client. Third-party sensor and analytics vendors integrate this way (Lumeo, Reconeyez, IRIS+ guides).
Source: Vendor integration guides for the Security Center Web SDK
LenelS2 OnGuard
OnGuard takes no inbound webhook. Events enter through an OpenAccess client, an OAAP partner adapter, or a supervised input on an access panel mapped to a logical source; alarm monitoring then handles it like a door forced.
Built: the CEF/syslog line a SIEM beside OnGuard ingests, and the gateway's dry contact, which a supervised panel input takes like any door contact. Not built: an OpenAccess client.
Source: Google Chronicle's OnGuard ingestion guide (polling of the OpenAccess REST API); LenelS2 OAAP partner pages
AeroVironment ARGUS (ex-BlueHalo)
The ARGUS catalogue lists a Sensor I/O Unit that takes third-party detection sensors into the ARGUS mesh, an IP Relay Output Module for dry-contact signalling out, and a Gate Interface Module that masks alarms for authorised access events. The NextMAG gateway's dry contact wires to one Sensor I/O Unit input per zone, so the zone shows in ARGUSView as one more sensor and ARGUS cross-cues its own lighting and cameras.
Built: the dry-contact output. The field gateway (gateway/nextmag-perimeter.mjs) runs this same pipeline on the Pi beside the units and pulses a relay through gpioset for each confirmed target, again every 30 s while it stays; one relay channel per zone (docs/runbooks/perimeter-argus-dry-contact.md). Not built: the ARGUSView zone and rule, which the integrator sets on site, and a hold-until-clear contact (pulses only). Not yet run against a real Sensor I/O Unit.
Source: BlueHalo ARGUS Perimeter Security Solutions product catalogue (2022), pages 10 to 13
SIEM (Splunk, Microsoft Sentinel, ArcSight)
ArcSight CEF over RFC 5424 syslog, facility 10, TLS syslog as the transport.
Built: the CEF line and the syslog frame. The transport is the site's syslog collector.
Source: lib/perimeter/payloads.ts
No target on the line.
- Gate cameraidledry-runpan —tilt —zoom —range —
- Mid-line cameraidledry-runpan —tilt —zoom —range —
| Object | Moment | Range (SNR 5) |
|---|---|---|
| pocket metal | 0.02 A·m² | 0.5 m |
| handgun | 0.2 A·m² | 1.1 m |
| rifle | 1 A·m² | 1.9 m |
| bicycle | 3 A·m² | 2.8 m |
| motorcycle | 30 A·m² | 6.1 m |
| passenger car | 200 A·m² | 11.4 m |
| pickup / SUV | 600 A·m² | 16.4 m |
| truck | 1,500 A·m² | 22.3 m |
| heavy truck / armoured | 5,000 A·m² | 33.3 m |
Personnel are only detectable within about 2 m of a unit: this is a vehicle sensor at fence range.
For car-class localization keep units ≤ 20 m apart; at 30 m only truck-class targets pair.
Floor used: 2.7 nT. Ranges are order-of-magnitude broadside estimates (a factor of ~2–3 either way) — see lib/perimeter/physics.ts.
off (dry-run)
Sends to the webhook/email/SMS/Slack destinations configured on the server (PERIMETER_ALARM_WEBHOOKS / _EMAILS / _SMS / _SLACK). While off, the test button previews a dry run only — nothing leaves the server.
Every numeric card in Demo carries the simulated tag above. The green Live badge appears only once at least two real units on the line are reporting — one unit, or none, never fabricates a track, a chainage or a moment. Amber marks simulated data and large-vehicle emphasis only, never a live unit's own identity. This is a vehicle sensor at fence range: it does not detect personnel, or what they carry, beyond a couple of metres.