Ir al contenido

Descripción General de Conectores

Los Conectores son los bloques de construcción de los flujos de trabajo de Meddle. Cada conector es un componente especializado que puede leer datos de fuentes, escribir datos en destinos o procesar y transformar datos en tránsito.

Los conectores se conectan entre sí en un editor de flujo de trabajo visual para crear potentes pipelines de integración de datos sin escribir código.

Meddle proporciona 44 tipos diferentes de conectores organizados en tres categorías principales:

Conéctate a sistemas de automatización industrial, PLCs y ejecuta analítica industrial:

OPC UA

Protocolo estándar de la industria para automatización industrial. Admite múltiples métodos de autenticación y modos de seguridad.

Modbus

Comunicación serial y TCP con PLCs y dispositivos industriales. Admite todos los tipos de registros y formatos de datos.

Siemens S7

Comunicación directa con PLCs Siemens S7-300, S7-400, S7-1200 y S7-1500.

Logix

Comunicación con PLCs Allen-Bradley/Rockwell vía protocolo EtherNet/IP (CIP).

CoAP

Constrained Application Protocol para dispositivos IoT de recursos limitados.

gRPC

Llamar a servicios gRPC remotos con TLS y sondeo configurable para integraciones industriales.

ISA-18.2

Máquina de estados de gestión de alarmas según el estándar ISA-18.2 con deadband y retardos on/off.

OEE

Calcular la Efectividad Global del Equipo (Disponibilidad × Rendimiento × Calidad) sobre ventanas deslizantes o por turno.

OPC UA PubSub

Recibir y enviar mensajes OPC UA PubSub sobre transportes MQTT o UADP (multicast UDP).

Predictive Maintenance

Calcular Vida Útil Restante y health scores a partir de tendencias de señales usando regresión, media móvil o EWMA.

PROFINET

Leer y escribir variables de dispositivos PROFINET IO sobre DCE/RPC.

UNS

Construir jerarquías de tópicos ISA-95 Unified Namespace con salida SparkplugB o JSON.

Integra con protocolos IoT, brokers de mensajes y bases de datos:

MQTT

Mensajería de publicación/suscripción para dispositivos IoT con soporte de QoS (MQTT v3).

HTTP/REST

Conéctate a APIs REST y servicios web con encabezados y métodos personalizables.

InfluxDB

Base de datos de series temporales optimizada para datos industriales e IoT.

MongoDB

Base de datos NoSQL de documentos para almacenamiento flexible de datos.

SQL

Soporte para bases de datos MySQL, PostgreSQL y SQL Server.

Redis

Almacén de datos en memoria para caché y colas de datos en tiempo real.

Firebase

Google Cloud Firestore para almacenamiento de documentos NoSQL escalable.

AMQP

Publicación/suscripción RabbitMQ AMQP 0.9.1 con vinculaciones exchange/cola y TLS.

Kafka

Publicación/suscripción Apache Kafka con grupos de consumidores y autenticación SASL.

MQTT v5

MQTT 5.0 con suscripciones compartidas, propiedades de usuario y expiración de mensajes.

NATS

Publicación/suscripción NATS con grupos de cola y credenciales de token o JWT.

S3

Lector y escritor de almacenamiento de objetos AWS S3 (o compatible con S3) con plantillas de clave.

Transforma, filtra, enruta y procesa datos en tránsito:

Filter

Lista blanca o lista negra de claves de datos específicas.

Conveyor

Pasa datos sin cambios para enrutamiento de muchos a muchos.

Merge

Combina datos de múltiples fuentes con estrategias basadas en tiempo o claves.

Reshape

Renombra campos o enriquece datos con valores estáticos.

Trigger

Lógica condicional usando expresiones MXL.

Cron

Programa la liberación de datos en momentos específicos.

Auth

Autenticación y validación JWT.

Anomaly Detection

Detección de anomalías basada en ML usando Isolation Forest.

Alert

Envía notificaciones basadas en condiciones.

Chart

Visualización de datos en tiempo real.

Aggregation

Agregación por ventanas (sum, avg, min, max, count) sobre ventanas tumbling, sliding o por recuento.

File Format

Parsear y serializar cargas CSV y XML.

Notification

Enviar notificaciones a Slack, Microsoft Teams, Email, Microsoft 365 o webhooks.

OnChange

Deduplicar flujos emitiendo sólo cuando las claves observadas cambian más allá de una tolerancia.

Protocol Translator

Convertir entre JSON plano, JSON anidado, SparkplugB y OPC UA JSON.

Rate Limiter

Estrangulamiento token-bucket con estrategia de descarte o cola acotada.

Router

Enrutamiento condicional basado en expresiones MXL con una etiqueta _route.

Script

Ejecutar scripts Lua en sandbox con un timeout configurable.

Transform

Extraer o calcular campos con JSONPath, plantillas Go o valores estáticos.

Validation

Validación de tipo, rango y regex con acciones de descarte, reenvío o etiquetado.

Todos los conectores intercambian datos usando un formato estándar de carga clave-valor:

{
"temperature": 25.5,
"pressure": 101.3,
"humidity": 60,
"status": "active",
"timestamp": 1234567890
}

Este formato estandarizado permite que cualquier conector se comunique con cualquier otro conector, independientemente del protocolo o sistema subyacente.

Cada conector se configura usando JSON con tres secciones principales:

  1. Type: El tipo de conector (ej., OpcuaReader, MqttV3Writer)
  2. Config: Configuración específica del conector (endpoints, credenciales, etc.)
  3. Variables: (Opcional) Para conectores industriales, define qué datos leer/escribir

Ejemplo:

{
"type": "OpcuaReader",
"config": {
"endpoint": "opc.tcp://localhost:4840",
"pollingRate": 1000
},
"variables": [
{
"key": "temperature",
"nodeId": "ns=1;s=Temperature"
}
]
}

Los conectores se organizan en hojas de trabajo (workflows) donde:

  1. Los conectores lectores recopilan datos de fuentes
  2. Los conectores de procesamiento transforman y filtran datos
  3. Los conectores escritores envían datos a destinos

Los datos fluyen a través de conexiones entre conectores, con cada conector procesando datos en paralelo para máximo rendimiento.

Muchos conectores lectores admiten un parámetro pollingRate (en milisegundos):

{
"pollingRate": 1000 // Sondear cada 1 segundo
}

Los conectores que requieren autenticación típicamente admiten múltiples métodos:

{
"username": "user",
"password": "pass"
}

O para autenticación basada en tokens:

{
"authToken": "tu-token-aquí"
}

Todos los conectores incluyen manejo de errores integrado y:

  • Registran errores con códigos de error específicos
  • Continúan la operación cuando es posible
  • Proporcionan mensajes de error detallados para solución de problemas
  • Usa valores de pollingRate apropiados para evitar sobrecargar sistemas
  • Sondeo más rápido = más datos pero mayor uso de CPU/red
  • Valores típicos: 100ms (rápido), 1000ms (normal), 5000ms (lento)

Algunos conectores acumulan datos en memoria:

  • Merge: Combina datos de múltiples fuentes
  • Cron: Retiene datos hasta la liberación programada
  • Usa el parámetro maxRetained para limitar el uso de memoria
  • Las hojas de trabajo ejecutan conectores en paralelo
  • Múltiples hojas de trabajo se ejecutan simultáneamente
  • Escalado horizontal en núcleos de CPU

Comienza con flujos de trabajo básicos de lector → escritor antes de agregar conectores de procesamiento.

Coloca conectores Filter temprano en el flujo de trabajo para reducir el tamaño de la carga y mejorar el rendimiento.

Usa conectores Reshape para estandarizar nombres de campos en diferentes fuentes.

Usa conectores Trigger para detectar condiciones de error y enrutar a conectores Alert.

Usa conectores Cron para procesamiento por lotes y liberaciones de datos programadas.

Usa conectores Auth para validar tokens JWT en flujos de datos que requieren autenticación.

Agrega conectores Anomaly Detection para identificar patrones inusuales en tus datos.

Explora la documentación de conectores por categoría: