Enviando Mensajes a Microsoft Teams con Node-RED
Este tutorial le muestra cómo enviar notificaciones de inspección desde su cámara OV80i directamente a un canal de Microsoft Teams. Aprenderá a configurar alertas automáticas que incluyen resultados de inspección y enlaces clicables a imágenes, manteniendo a su equipo informado al instante sobre el estado de producción.
Lo que Construirá: Un sistema automatizado que publica resultados de inspección del OV80i, incluyendo imágenes y estado de aprobación/rechazo, directamente en un canal de Microsoft Teams.
Aplicación en el Mundo Real: Reciba notificaciones instantáneas cuando las inspecciones fallen, comparta imágenes de inspección con equipos remotos o cree reportes de calidad automáticos en su espacio de colaboración de equipo.
Prerrequisitos
- Cámara OV80i conectada a la red de su planta
- Acceso a Microsoft Teams con permiso para agregar conectores
- Canal de Teams donde desea recibir notificaciones
- Conectividad de red entre OV80i y Microsoft Teams
- Conocimientos básicos de flujos Node-RED
Resumen del Tutorial
Lo que construiremos: Un flujo Node-RED que envía automáticamente resultados de inspección a Microsoft Teams con enlaces clicables a imágenes.
Tiempo requerido: 15-20 minutos
Habilidades adquiridas: Integración de webhook de Teams, solicitudes HTTP en Node-RED, sistemas de notificación automatizados
Paso 1: Configurar el Webhook de Microsoft Teams
1.1 Acceda a su Canal de Teams
- Abra Microsoft Teams y navegue al canal para notificaciones de inspección
- Haga clic en los tres puntos (•••) junto al nombre del canal
- Seleccione "Administrar canal" en el menú desplegable
1.2 Agregar Conector de Incoming Webhook
- Haga clic en "Conectores" en el menú de administración del canal
- Busque "Incoming Webhook" en la lista de conectores
- Haga clic en "Agregar" junto a la opción Incoming Webhook
1.3 Configurar Ajustes del Webhook
- Nombre: Ingrese un nombre descriptivo (por ejemplo, "Alertas de Inspección OV80i")
- Icono: Opcionalmente, cargue un ícono personalizado para sus notificaciones
- Haga clic en "Crear" para generar el webhook
1.4 Guardar URL del Webhook
- Copie la URL del webhook generada — esto es crucial para la configuración en Node-RED
- Guarde la URL en un lugar seguro (la necesitará en el Paso 2)
- Haga clic en "Listo" para completar la configuración en Teams
Punto de Control: Ahora debería tener una URL de webhook que luce así: https://yourcompany.webhook.office.com/webhookb2/...
Paso 2: Acceder a Node-RED en OV80i
2.1 Navegar a Node-RED
- Abra la interfaz web de OV80i
- Vaya a Recipe Editor > IO Block
- Haga clic en "Configure I/O" para entrar al editor Node-RED
2.2 Preparar su Área de Trabajo
- Libere un área en el lienzo de Node-RED para su flujo de integración con Teams
- Identifique la paleta en el lado izquierdo con los nodos disponibles
- Planifique su flujo: Disparador → Proceso → Enviar a Teams
Paso 3: Construir el Flujo Node-RED
3.1 Agregar Nodos Requeridos
Arrastre estos nodos desde la paleta a su lienzo:
- Nodo Inject (para pruebas)
- Nodo Function (para formatear el mensaje)
- Nodo HTTP request (para enviar a Teams)
- Nodo Debug (opcional, para solución de problemas)
3.2 Conectar los Nodos
- Conecte la salida del inject a la entrada del function
- Conecte la salida del function a la entrada del HTTP request
- Conecte la salida del HTTP request a la entrada del debug (opcional)
Estructura del flujo:
Inject → Function → HTTP Request → Debug
Paso 4: Configurar el Nodo Function
4.1 Configuración Básica del Mensaje
- Haga doble clic en el nodo function para abrir la configuración
- Reemplace el código predeterminado con este formato básico de mensaje:
// Mensaje básico para Teams
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: "Tiene un nuevo mensaje de su OV80i"
};
return msg;
4.2 Mensaje Avanzado con Enlaces a Imágenes
Para resultados dinámicos de inspección con imágenes clicables:
// Mensaje dinámico con imagen de inspección
let imageUrl = msg.payload.image_url;
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: `Inspección Completa - [Ver Imagen](${imageUrl})`
};
return msg;
4.3 Notificación Completa de Inspección
Para detalles completos de la inspección:
// Notificación completa de inspección
const inspectionData = msg.payload;
const imageUrl = inspectionData.image_url;
const result = inspectionData.result ? "PASS" : "FAIL";
const timestamp = new Date().toLocaleString();
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: `🔍 **Inspección ${result}** - ${timestamp}\n\n[Ver Imagen](${imageUrl})`
};
return msg;
4.4 Guardar Configuración del Nodo Function
- Haga clic en "Listo" para guardar el nodo function
- Asigne un nombre descriptivo al nodo, como "Formatear Mensaje para Teams"
Paso 5: Configurar el Nodo HTTP Request
5.1 Configurar HTTP Request
- Haga doble clic en el nodo HTTP request para configurar
- Establecer Método: Seleccione "POST" en el menú desplegable
- Establecer URL: Pegue su URL del webhook de Teams del Paso 1.4
- Establecer Retorno: Seleccione "UTF-8 string"
5.2 Ajustes Adicionales
- Nombre: Ingrese "Enviar a Teams" para claridad
- Headers: Déjelo vacío (lo maneja el nodo function)
- Payload: Déjelo en "Ignorar" (lo maneja el nodo function)
5.3 Guardar Configuración HTTP
- Haga clic en "Listo" para guardar el nodo HTTP request
- Verifique que la URL del webhook sea correcta — esto es crítico para el éxito
Paso 6: Probar su Integración
6.1 Desplegar el Flujo
- Haga clic en el botón "Deploy" en la esquina superior derecha
- Espere la confirmación de "Desplegado con éxito"
- Revise si hay indicadores de error en los nodos (triángulos rojos)
6.2 Probar con Nodo Inject
- Haga clic en el botón al lado izquierdo del nodo inject
- Revise el panel debug (barra lateral derecha) para mensajes de error
- Verifique que el mensaje aparezca en su canal de Teams
6.3 Verificar Notificación en Teams
- Cambie a Microsoft Teams y revise su canal objetivo
- Busque el mensaje de prueba enviado desde su OV80i
- Pruebe los enlaces clicables para asegurarse de que funcionen correctamente
Paso 7: Integración con el Flujo de Inspección
7.1 Conectar a Resultados de Inspección
Para enviar notificaciones automáticas después de cada inspección:
- Encuentre su flujo principal de inspección (usualmente comienza con "All Block Outputs")
- Agregue su notificación a Teams como una rama del flujo principal
- Conecte después del procesamiento de inspección pero antes de resultados finales
7.2 Ejemplo de Flujo de Integración
All Block Outputs → [Lógica de Inspección] → Resultado Final Pass/Fail
↓
Formatear Mensaje para Teams → Enviar a Teams
7.3 Filtrar Notificaciones (Opcional)
Para enviar notificaciones solo cuando las inspecciones fallen:
// Solo enviar notificaciones para fallas
const inspectionResult = msg.payload.result;
if (!inspectionResult) { // Solo si la inspección falló
const imageUrl = msg.payload.image_url;
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: `⚠️ **INSPECCIÓN FALLIDA** - Requiere atención inmediata\n\n[Ver Imagen Fallida](${imageUrl})`
};
return msg;
} else {
return null; // No enviar mensaje para inspecciones aprobadas
}
Paso 8: Solución de Problemas
8.1 Problemas Comunes
Problema | Síntomas | Solución |
---|---|---|
No hay mensaje en Teams | Debug muestra éxito pero no hay notificación en Teams | Verifique URL del webhook, confirme conectividad de red |
Error HTTP 400 | Error de solicitud en debug | Revise formato del mensaje, asegure encabezado Content-Type |
Enlaces a imágenes no funcionan | El mensaje aparece pero las imágenes no se abren | Verifique que la URL de la imagen sea accesible desde la red de usuarios de Teams |
El flujo no se dispara | No hay salida en debug cuando se espera | Revise conexiones del flujo, confirme condiciones del disparador |
8.2 Depure su Flujo
- Agregue nodos debug después de cada paso para rastrear el flujo de datos
- Revise el panel debug para mensajes de error y estructura de datos
- Pruebe con nodo inject para aislar problemas de configuración
- Verifique la URL del webhook probándola con herramientas externas si es necesario
8.3 Conectividad de Red
- Asegúrese que OV80i pueda acceder a internet (prueba de ping desde la cámara)
- Revise configuraciones de firewall que puedan bloquear HTTPS saliente
- Verifique resolución DNS para URLs del webhook de Teams
- Pruebe desde un navegador en la misma red que la cámara
¡Éxito! Su Integración con Teams está Completa
Su cámara OV80i ahora puede:
✅ Enviar notificaciones automáticas a canales de Microsoft Teams
✅ Incluir enlaces clicables a imágenes para revisión inmediata de inspección
✅ Filtrar notificaciones según resultados de inspección
✅ Proporcionar formato enriquecido con detalles y marcas de tiempo
✅ Soportar múltiples canales para diferentes tipos de notificaciones
Mejores Prácticas
Gestión de Mensajes
- Use nombres descriptivos para canales según tipos de notificaciones
- Incluya marcas de tiempo e identificadores de estación en los mensajes
- Filtre mensajes para evitar sobrecarga de notificaciones
- Pruebe exhaustivamente antes del despliegue en producción
Consideraciones de Seguridad
- Proteja las URLs del webhook — trátelas como credenciales sensibles
- Use HTTPS para todas las comunicaciones (por defecto con Teams)
- Limite el acceso de red solo a servicios necesarios
- Rote regularmente las URLs del webhook si se comprometen
Optimización de Rendimiento
- Agrupe notificaciones si envía muchos mensajes
- Use lógica de reintentos adecuada para fallas de red
- Monitoree tasas de entrega de mensajes
- Implemente limitación de tasa para evitar límites de API de Teams
Próximos Pasos
Después de configurar la integración con Teams:
- Cree diferentes canales de notificación para varios tipos de inspección
- Configure flujos de escalamiento para fallas críticas
- Integre con otras herramientas de equipo (correo electrónico, SMS, etc.)
- Construya dashboards combinando Teams con otras herramientas de monitoreo
- Capacite a su equipo para responder a notificaciones automatizadas