All chapters

People and Pulse

A person is a mobile asset: a lone worker, a driver, a principal. Each is followed by Pulse, a web app on their phone that reports that they are well, where they are, and sounds an alarm at a three-second press. People are watched by the same rules as places.

Setting up a person#

  1. Open People and add a person.
  2. On the person's Pulse tab, enable Pulse. Huntress shows a key (a GUID) and a QR code that encodes the address https://<host>/pulse?token=<key>.
  3. On the phone, scan the code with the camera, or open the address, or paste the key into Pulse. Pulse stores the key on the device, removes it from the address bar and reconnects by itself from then on.
  4. Install Pulse to the home screen if the browser offers it. It opens offline, but only reports while it has a connection.
RequirementsPulse needs HTTPS for location and for installation, so your server must be reached over a TLS-terminating proxy. See Deployment. The browser asks the person for permission to use their location.

What Pulse does#

Pulse behaviour
FunctionHow it works
HeartbeatA Keepalive every 30 seconds, carrying the position and a description of the device (system, browser, language, screen, time zone).
Panic alarmPress and hold for 3 seconds (a progress ring shows it; keyboard Space or Enter works too; letting go early cancels). Huntress receives a PanicAlarm with the position. If it does not get through, Pulse retries three times, two seconds apart, and then shows “Alarm not sent” with a Retry button.
LocationA continuous position while Pulse is open on the screen, sent with each heartbeat and alarm.
Status ringActive, No signal, Offline, Starting, Alarm sent or Alarm not sent, with the time of the last contact.
OfflineThe app opens without a connection, but heartbeats pause and resume by themselves, and a panic alarm cannot be sent until there is a connection. Nothing is queued.
Know the limitsPulse is a web page. It reports only while it is open and the phone allows it; it does not run in the background and it does not use push notifications. For lone-worker safety, treat the heartbeat rules below as the safety net: silence becomes an incident even when the phone cannot say anything.

Watching a person#

  • Uptime monitoring. On the Pulse tab, Monitor uptime with a threshold (1 to 1,440 minutes) marks the person offline when no heartbeat arrives in that time.
  • Rules. A person trigger starts a rule on that person's events (PanicAlarm, Movement, Keepalive). Conditions test Person status (online, offline or panic), Person not moving (no movement for N minutes within about 25 metres), Person not reporting (no check-in for N minutes; checked on the clock, so it fires even when nothing arrives) and Geofence.
  • Panic. A rule on PanicAlarm that creates an incident with severity Critical, e-mails the duty officer and switches on a siren is a few clicks. See Rules.

The person's page#

A person has an overview of the last contact and status, and tabs for Events, Map, Pulse, Rules and Incidents. The map draws each reported position as a coloured point per event type, with the latest pulsing, and a panel for the last known location. There is no map of all people at once.

Geofences#

A geofence belongs to a place and is set up in the place's settings: a circle (latitude, longitude and a radius of 5 m to 100 km) or a polygon entered as lines of latitude, longitude. The Geofence condition tests whether a person is inside or outside one at the moment the rule is evaluated. It is a state test, not an enter or leave event: to react to leaving, combine it with a trigger on the person's next event.

Sending positions from your own app#

Pulse is one client of the Hunt API. Any app can post Movement, PanicAlarm and Keepalive events with a position to /hunt/{pulse-key}; Pulse itself sends only the last two. See Sending data.

Connection lost
Attempting to reconnect…