💼 Мониторинг рабочего места

Отслеживание присутствия сотрудника на рабочем месте с уведомлениями об отсутствии и возвращении.

Как это работает

👤
Сотрудник
в зоне
⏱️
Таймер
отсутствия
🚨
Уведомление
absence
👤
Сотрудник
вернулся
Уведомление
return

⚙️ Настройки

Основные параметры

Параметр Описание По умолчанию
Enable workplace monitor Включить отслеживание присутствия Off
Use object detector Использовать Модель детекции для обнаружения человека On
Use pose detector Использовать pose detection для точности Off
Target object Класс объекта для отслеживания person
Require initial presence Требовать первичное появление перед отслеживанием On

Таймауты

Параметр Описание По умолчанию
Source grace (sec) Грейс-период после потери детекции 1.5 сек
Absence alert after (sec) Время отсутствия для генерации алерта 30 сек
Presence confirm (sec) Время присутствия для подтверждения возврата 5 сек
Для контроля перерывов установите Absence alert after = 900 (15 минут). Уведомление придёт только если сотрудника нет на месте более 15 минут.

📍 Зоны рабочего места

Рабочее место — это зона на изображении. Оператор должен находиться внутри зоны для отслеживания присутствия/отсутствия.

Управление зонами

Кнопка Действие
DRAW WORK ZONE Начать рисование зоны рабочего места
CLOSE WORK ZONE Завершить и сохранить зону
REMOVE LAST WORK ZONE Удалить последнюю зону
RESET WORK ZONES Удалить все зоны рабочего места
Рисуйте зоны точно по границам рабочего места. Множественные зоны поддерживаются — каждая зона ведётся отдельно со своими инцидентами.

📲 Telegram уведомления

При включении workplace мониторинга автоматически отправляются уведомления:

🚨 #workplace_absence
Камера: Офис вход — оператор покинул рабочее место
✓ #workplace_return
Камера: Офис вход — оператор вернулся (отсутствовал 5 мин 23 сек)

Защита от дублей

Повторная отправка одного и того же инцидента блокируется по incident_id. Для каждой зоны ведётся отдельный счётчик инцидентов.

📝 Пример конфигурации

{
  "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]]
  ]
}