Documentación: Nodo Obtener Captura (Get Snapshot)¶
Descripción General¶
El Nodo Obtener Captura (Get Snapshot) es un nodo de acción que solicita en tiempo real una captura de imagen (snapshot) a un canal de video (cámara) y devuelve la URL del archivo de imagen generado.
Es uno de los nodos más útiles dentro de flujos de seguridad y monitoreo IoT: permite "congelar" el momento exacto en que ocurre un evento (una intrusión, una alarma, una parada de máquina) para luego adjuntar esa imagen en notificaciones, analizarla con IA, almacenarla como evidencia o registrarla en un reporte.
¿Cuándo usar este nodo?¶
Utiliza este nodo cuando necesites:
- Capturar evidencia visual en el instante en que se dispara un evento (por ejemplo, tomar una foto de la cámara de un acceso cuando un sensor detecta apertura de puerta fuera de horario).
- Obtener una imagen para adjuntarla a una notificación (Telegram, WhatsApp, Email) y que el personal vea de inmediato lo que ocurre.
- Generar una imagen para enviarla a un modelo de IA (por ejemplo, los nodos de Analyze Image with AI) que verifique si hay una persona, un vehículo, fuego, etc.
- Almacenar capturas periódicas como respaldo o registro en almacenamiento externo (S3, Google Sheets con enlace, etc.).
Configuración del Nodo¶
El nodo cuenta con dos pestañas de configuración en la parte superior: Formulario (Form) y Editor de JSON (JSON Editor).

Vista Formulario¶
Seleccionar el canal de video (Object) *Requerido¶
El formulario muestra un selector de objetos con dos pestañas en la parte superior:
- Groups (Grupos): Permite navegar por los objetos organizados por dominios/grupos.
- Devices (Dispositivos): Permite navegar por la lista de dispositivos físicos. Esta es la vista habitual para localizar cámaras.
Pasos:
- Haz clic en la pestaña
Devices. - Busca y expande la cámara deseada (puedes usar el campo
Searchpara filtrar por nombre). - Marca el canal de video (
video_channel) de la cámara. El nodo trabaja sobre un único canal de video.
En cuanto seleccionas un canal, el nodo muestra una vista previa en vivo del video debajo del árbol, lo que te permite confirmar visualmente que es la cámara correcta:

Vista Editor de JSON¶
En la pestaña Editor de JSON (JSON Editor) puedes ver y editar directamente el ID del canal de video, útil para parametrizarlo con expresiones dinámicas (por ejemplo, {{trigger.object_id}} para capturar la cámara que disparó el evento):

Estructura JSON (Parámetros de entrada)¶
A continuación se muestra la estructura del JSON que se genera al configurar el nodo:
{
"object_id": "onvif_standard.video_channel.28.VideoSourceToken-0"
}
Campos del JSON¶
| Campo | Tipo | Descripción |
|---|---|---|
object_id |
string | ID único del canal de video (video_channel) sobre el que se solicitará la captura. Puede ser un valor fijo o una expresión de plantilla (ej. {{trigger.object_id}}). |
Output: Dónde viene la data del nodo¶
Cuando la acción se ejecuta correctamente, el nodo devuelve en su Output (Salida) la URL del archivo de imagen capturado:
{
"url": "http://netsocs-driverhub-service:3196/public/45cb1228-2e71-4b04-815d-36092f930d6e.jpg"
}
Campos de la salida¶
| Campo | Tipo | Descripción |
|---|---|---|
url |
string | URL del archivo de imagen (snapshot) generado por la cámara. |
Usar la salida en nodos posteriores¶
Para referenciar la URL de la captura en nodos posteriores (por ejemplo, para adjuntarla a una notificación o enviarla a un nodo de IA), utiliza la clave del nodo (node_key):
{{node_key.url}}
(Recuerda sustituir node_key por la clave asignada automáticamente al nodo en el lienzo).
Caso Especial: Acceso a la URL del Snapshot (Enrutamiento Interno vs. Público)
La URL devuelta en el campo url utiliza el direccionamiento interno de la red de Docker de la instalación: http://netsocs-driverhub-service:3196/public/<archivo>.jpg
Este host (netsocs-driverhub-service:3196) solo es accesible internamente dentro de la red privada de contenedores, por lo que un usuario externo o su navegador no podrá visualizar la imagen con esa dirección directa.
Para poder visualizar y acceder públicamente a la imagen, se debe sustituir la sección interna por la ruta de enrutamiento externa pública del dominio de tu instancia (por ejemplo, https://demo02.netsocs.com/):
- Ruta interna (dentro de Docker):
http://netsocs-driverhub-service:3196/public/ - Ruta pública (acceso de usuario):
https://<dominio-instancia>/api/netsocs/dh/public/
Por lo tanto, la URL pública final del ejemplo sería: https://demo02.netsocs.com/api/netsocs/dh/public/45cb1228-2e71-4b04-815d-36092f930d6e.jpg
Ejemplos de uso¶
Ejemplo 1: Capturar evidencia ante apertura de puerta fuera de horario¶
Caso de uso: Un sensor de puerta detecta una apertura durante la madrugada. El flujo captura una imagen de la cámara que cubre ese acceso y la adjunta a una alerta enviada al supervisor de seguridad.
- Disparador (Trigger): Cambio de estado del sensor de puerta a
OPEN. - Acción (Action): Obtener captura de la cámara del acceso.
- Uso posterior: El campo
{{get_snapshot_node.url}}se usa en un nodo de notificación (Telegram/WhatsApp/Email).
JSON de configuración:
{
"object_id": "onvif_standard.video_channel.28.VideoSourceToken-0"
}
Ejemplo 2: Captura dinámica de la cámara que dispara el evento¶
Caso de uso: En una automatización genérica que aplica a múltiples cámaras, se captura siempre la imagen de la cámara que originó el evento, sin tener que crear un flujo por cada cámara.
- Disparador (Trigger): Evento de detección de movimiento (Motion).
- Acción (Action): Obtener captura usando el ID dinámico del disparador.
JSON de configuración:
{
"object_id": "{{trigger.object_id}}"
}
Validación y errores¶
| Condición | Causa / Solución habitual |
|---|---|
object_id ausente o vacío |
Selecciona un canal de video válido en la pestaña Devices o ingresa la clave "object_id" en la pestaña JSON. |
| No se genera la URL | Verifica que el driver/motor de video de la cámara esté conectado y transmitiendo. Una cámara fuera de línea no puede entregar una captura. |
| La imagen no se visualiza desde internet | Recuerda convertir la URL interna de Docker a su ruta pública (ver el aviso anterior). |
Buenas prácticas¶
- Nombrar el nodo descriptivamente: Cambia el nombre del nodo en el lienzo a algo legible (ej. "Captura acceso principal") para usar su variable
urlfácilmente en nodos posteriores. - Usar IDs dinámicos: En flujos genéricos, asigna el
object_idcon{{trigger.object_id}}para reutilizar la misma automatización en múltiples cámaras. - Encadenar con IA o notificaciones: El verdadero valor del snapshot aparece al combinarlo con nodos posteriores: análisis con IA, envío por mensajería o almacenamiento como evidencia.
- Convertir la URL para uso externo: Si la imagen debe verse fuera de la red interna, recuerda transformar la URL interna a la ruta pública del dominio.