💼 Workplace Monitoring

Track employee presence at their workstation with absence and return notifications.

How it works

👤
Employee
in zone
⏱️
Absence
timer
🚨
Alert
absence
👤
Employee
returned
Alert
return

⚙️ Configuration

Basic Parameters

Parameter Description Default
Enable workplace monitor Enable presence tracking Off
Use object detector Use detection model for person detection On
Use pose detector Use pose detection for accuracy Off
Target object Object class to track person
Require initial presence Require initial presence before tracking On

Timeouts

Parameter Description Default
Source grace (sec) Grace period after detection loss 1.5 sec
Absence alert after (sec) Time absent before alert triggers 30 sec
Presence confirm (sec) Time present to confirm return 5 sec
For break monitoring, set Absence alert after = 900 (15 minutes). Alert triggers only when employee is absent for more than 15 minutes.

📍 Workplace Zones

A workplace is a zone on the image. The operator must be inside the zone for presence/absence tracking.

Zone Management

Button Action
DRAW WORK ZONE Start drawing workplace zone
CLOSE WORK ZONE Finish and save zone
REMOVE LAST WORK ZONE Remove last zone
RESET WORK ZONES Remove all workplace zones
Draw zones precisely around the workstation boundaries. Multiple zones are supported — each zone tracks separately with its own incidents.

📲 Telegram Notifications

When workplace monitoring is enabled, notifications are automatically sent:

🚨 #workplace_absence
Camera: Office entrance — operator left workstation
✓ #workplace_return
Camera: Office entrance — operator returned (absent 5 min 23 sec)

Duplicate Prevention

Duplicate alerts for the same incident are blocked by incident_id. Each zone maintains its own incident counter.

📝 Configuration Example

{
  "workplace_enabled": true,
  "workplace_use_object": true,
  "workplace_use_pose": false,
  "workplace_target_class": "person",
  "workplace_absence_seconds": 30,
  "workplace_confirm_seconds": 5,
  "workplace_source_grace_seconds": 1.5,
  "workplace_require_initial_presence": true,
  "workplace_zones": [
    [[50, 50], [300, 50], [300, 400], [50, 400]]
  ]
}