Rela AIRela AI Docs
Integraciones

Enviar datos de planta por MQTT a la nube (con Sparkplug B)

Conecta sensores y PLCs por MQTT sin gateway dedicado: broker, topics, QoS, payloads JSON, Sparkplug B y OPC UA Pub/Sub — con ejemplos listos para copiar.

MQTT: telemetría de planta a la nube

MQTT es la vía más flexible para llevar datos a Rela AI: cualquier sensor, PLC con cliente MQTT, ESP32 o bridge existente puede publicar a tu broker y Rela AI se suscribe al topic. Soporta payloads JSON simples, Sparkplug B (el estándar industrial sobre MQTT) y OPC UA Pub/Sub sobre MQTT.

Qué necesitas

RequisitoDetalle
Broker MQTTEl tuyo (Mosquitto, EMQX, HiveMQ) o uno gestionado
TopicEj. planta/horno1/telemetria (admite wildcards +/#)
Algo que publiquePLC con cliente MQTT, sensor IoT, Node-RED, bridge

¿No tienes broker? Un Mosquitto en un mini-PC de planta tarda minutos en instalarse, o usa Node-RED / HiveMQ Edge si además necesitas convertir protocolos legados.

Paso a paso

1. Crea la fuente MQTT

Industrial → Conexiones → Nueva fuente, protocolo MQTT:

CampoEjemploNotas
broker_urlmqtt://192.168.0.30:1883También mqtts:// con TLS
mqtt_topicplanta/+/telemetriaWildcards soportados
mqtt_qos10, 1 o 2
sparkplug_enabledfalseActívalo si publicas Sparkplug B

2. Publica tu primer payload

Payload JSON recomendado:

{
  "event_type": "TEMPERATURA_HORNO",
  "severity": "info",
  "message": "Lectura periódica",
  "timestamp": "2026-06-12T14:30:00Z",
  "metadata": { "temp_c": 218.5, "setpoint_c": 220 }
}

Reglas de parsing que conviene conocer:

  • severity ausente → info. La telemetría pura no necesita declarar severidad; alimenta líneas base y ML igualmente.
  • timestamp del dispositivo se respeta (ISO 8601 o epoch en segundos/milisegundos). Si tu edge bufferiza y reenvía tras un corte, las tendencias no se distorsionan.
  • Texto plano también vale: un payload no-JSON se ingesta usando el topic como event_type — útil para sensores muy simples.

3. Sparkplug B y OPC UA Pub/Sub

  • Sparkplug B: activa sparkplug_enabled y publica tus mensajes NBIRTH/NDATA normalmente — las métricas se decodifican del payload protobuf automáticamente.
  • OPC UA Pub/Sub sobre MQTT (JSON, MessageType: ua-data): usa el protocolo MQTT-OPC UA Bridge; cada campo del payload se convierte en un evento con su SourceTimestamp y StatusCode (status distinto de 0 entra como warning).

4. Verifica en vivo

Abre En vivo en el dashboard y publica un mensaje de prueba:

mosquitto_pub -h 192.168.0.30 -t planta/horno1/telemetria \
  -m '{"event_type":"PRUEBA","metadata":{"valor":1}}'

Troubleshooting

SíntomaCausa probableSolución
No llegan eventosTopic no coincideCompara con mosquitto_sub -t '#' -v — el matching es exacto salvo wildcards
Eventos duplicados ocasionalesQoS 2 + reconexionesQoS 1 suele bastar; Rela AI deduplica reintentos en una ventana corta
El listener se desconectaBroker cierra conexiones inactivasSube el keepalive del broker; la reconexión es automática con backoff
Timestamps "en el futuro"Reloj del dispositivo desfasadoSincroniza NTP en el edge o omite timestamp para usar hora de ingesta
Sparkplug no decodificasparkplug_enabled apagadoActívalo en la fuente; el payload protobuf no es JSON parseable

Preguntas frecuentes

¿MQTT o conexión directa al PLC? Si el dato ya está en un broker, MQTT es lo más simple. Si no hay broker ni bridge, la lectura directa (S7, Modbus TCP, OPC UA) evita piezas intermedias.

¿Necesito mandar severidad? No. La telemetría con severity: info (o sin severidad) alimenta tendencias, líneas base y detección de anomalías; las severidades altas son para alarmas explícitas del equipo.

¿Qué frecuencia de publicación conviene? Para ML y tendencias, 1 lectura cada 5–60 s por métrica es más que suficiente. Más frecuencia = más tráfico sin mejor detección.

En esta página