Todas las apps de Studio
Visión & CCTV

Presencia

zonas · horario

Sabé cuándo un puesto de trabajo queda sin atender — o atendido fuera del horario.

streamhub.studio/studio/presence
Presencia
El problema

Algunos puestos deben estar atendidos: una recepción, una garita de seguridad, una sala de control, un mostrador. Mirar un muro de cámaras para descubrir una silla vacía no escala, y la actividad fuera de horario en un escritorio es fácil de pasar por alto. Presencia convierte "¿este puesto está atendido?" en un evento sobre el que tus sistemas pueden actuar.

Casos de uso

Personal

Garantía de puesto atendido

Marcá la zona de recepción o mesa de ayuda y dispará presence.absent cuando queda vacía más allá de un umbral, para que un supervisor lo sepa antes que un cliente.

Industrial / HSE

Ocupación de sala de control

Una sala de control u operador que nunca debe estar vacía durante un turno: un par ausente-luego-volvió te da una línea de tiempo auditable de cada hueco.

Seguridad

Actividad fuera de horario

presence.after_hours señala una persona presente en un puesto fuera de la ventana y los días configurados — una señal silenciosa de que algo pasa fuera de horario.

Cómo funciona

Entrada

HLS en vivo + zonas dibujadas

Un worker muestrea el stream en vivo de la app por HLS a bajo FPS. Dibujás las zonas de puestos sobre un frame en vivo en el dashboard; persisten como rectángulos normalizados.

Detección

Ocupación persona-en-zona

Detección de personas YOLOv8 (open source, viable en CPU) más ocupación punto-en-zona y temporizadores de ausencia, evaluados contra tu horario y zona horaria.

Callback firmado

ausente / volvió / fuera de horario

Los tres eventos fluyen por los webhooks firmados con HMAC y MQTT de la app; un webhook extra opcional recibe el mismo JSON crudo.

Tu sistema

Línea de tiempo + tu flujo

Una línea de tiempo de ocupación por zona aparece en la pestaña del dashboard y en SQLite por app; tus sistemas consumen los eventos para alertar, registrar o escalar.

Eventos que emite

Declarados en el manifiesto del plugin y retransmitidos por los callbacks firmados con HMAC de la app (webhook + MQTT). Cualquier cosa que un worker intente emitir fuera de esta lista se rechaza — sin suplantar eventos del core.

presence.absent presence.returned presence.after_hours

Alcance y límites

  • Detecta una persona en una zona — no identidad, atención ni actividad. Responde "¿hay alguien?", no "¿quién?" ni "¿está trabajando?".
  • La ubicación de la cámara define la precisión: una vista cenital o de ángulo alto de la zona cuenta con fiabilidad; vistas frontales, de ángulo bajo o muy ocluidas fallan.
  • El horario usa una zona horaria IANA — configurala (un host Docker suele estar en UTC), o la lógica de fuera-de-horario se desfasa.

Requisitos mínimos

  • Solo CPU por defecto: yolov8n a ~2 fps necesita cerca de 0,5 núcleo por sala monitoreada, más el decode HLS — presupuestá ~1 núcleo y dejá un segundo núcleo de margen.
  • RAM: ~1,5 GB por worker (modelo de personas + runtime). El disco crece despacio (historial de ocupación en SQLite).
  • GPU opcional: cualquier GPU CUDA abarata modelos más grandes y más FPS, pero nunca es necesaria para una sola sala.

Los números son mediciones honestas de los autores del plugin, no marketing. La GPU es opcional en cada plugin de visión salvo donde se indique.

Corre como una app completa

Cada app de Studio es una aplicación de primera clase, no un modal de configuración — y no tiene por qué vivir dentro de StreamHub.

Vista de página completa en el dashboard

Se abre como su propia página dentro de la app tenant — zonas, paneles en vivo, historial y ajustes en una sola superficie, no apretados en un diálogo.

Su propia base de datos

Guarda su estado en una base SQLite dedicada por app — lecturas, alertas, ocupación y filas de evidencia — que es tuya y podés consultar.

Bundle exportable

Descargá la app como un bundle autocontenido — worker, Dockerfile, compose y una plantilla de env — para hostearla en tu propia infra y extenderla, hablando de vuelta por la API REST y los webhooks firmados.

¿Tenés cámaras o streams para poner a trabajar?

Contanos qué estás monitoreando y definimos las apps correctas, las conectamos a tus sistemas y las operamos con vos. El software es open source — el despliegue y la operación es lo que hacemos.