DOCUMENTACIÓN CON IA
¿Qué desea saber?
MQTT
OV Spark tiene un cliente MQTT integrado. Se conecta a su broker, en su red o en la nube, y:
- publica cada resultado de inspección como JSON, sin ningún script
- publica un heartbeat y su estado en línea
- recibe valores, como el número de lote actual, en variables
Soporta MQTT 3.1.1 y 5, con TCP simple, TLS o TLS mutuo (certificados de cliente).
Abra Integration > Data Connectors y elija MQTT.

Configúrelo
La configuración tiene tres pasos.
1. Conectarse al broker
Elija el tipo de broker para llenar las configuraciones típicas, las cuales puede modificar:
| Tipo de broker | Típico |
|---|---|
| Broker de planta (Mosquitto, HiveMQ, EMQX) | Puerto 1883, o 8883 con TLS |
| Ignition / SCADA (Ignition MQTT Distributor y similares) | Puerto 1883 |
| Broker en la nube (AWS IoT, Azure, HiveMQ Cloud y similares) | Puerto 8883 con TLS |
| Otro | Cualquier broker MQTT 3.1.1 o 5; usted configura cada campo |

| Configuración | Notas |
|---|---|
| Dirección y Puerto | El nombre de host o dirección IP del broker. Puerto predeterminado 1883 |
| Versión de MQTT | 5 (predeterminado) o 3.1.1 |
| Seguridad | Ninguna, TLS o TLS mutuo (certificado de cliente). TLS sin un certificado CA usa el almacén de confianza integrado de la cámara; TLS mutuo requiere un CA, un certificado de cliente y una clave de cliente |
| Nombre de usuario y contraseña | Déjelo vacío si el broker permite conexiones anónimas |
| Avanzado | ID de cliente (el número de serie de la cámara de forma predeterminada), keep-alive (30 s) y sesión limpia (activada) |
La verificación de conexión se ejecuta un segundo después de que deje de escribir: busca el nombre de host, se conecta al puerto, verifica TLS e inicia sesión, un paso a la vez. Las configuraciones se guardan cuando presiona Guardar y continuar en cada paso, y MQTT permanece apagado hasta el paso 3.
Ninguna envía todo sin cifrar, incluyendo la contraseña. Eso está bien en una red de máquina aislada. Use TLS si el tráfico cruza la red de la planta o la oficina, y TLS mutuo para brokers en la nube que requieren certificados de cliente.
2. Elija qué enviar
| Mensaje | Topic predeterminado | Notas |
|---|---|---|
| Resultados de inspección | overview/<serial>/results | Un mensaje por cada inspección en producción, con el QoS que elija (1 por defecto). Resumen omite el detail de cada herramienta; Completo lo incluye |
| Heartbeat | overview/<serial>/heartbeat | Cada N segundos (5 o más, o desactivado), en QoS 0 |
| Estado en línea | overview/<serial>/status | Un {"status":"online"} retenido, y un last-will {"status":"offline"} que el broker envía si la cámara se desconecta |
Puede cambiar cada topic, por ejemplo a plant/line3/results.
3. Encienda MQTT
Encienda MQTT, luego observe cada mensaje salir en Monitor > Topics y mensajes.
Los mensajes de resultado se publican con retain desactivado, de modo que un suscriptor que se conecte después no recibe un resultado antiguo como si fuera nuevo. Para mantener disponible el último resultado, publíquelo usted mismo desde el script de la cámara con retain: true, o léalo desde la API HTTP.
Cómo se ve un mensaje de resultado
El mismo documento es usado por MQTT, la API HTTP y el onResult del script de la cámara. Un resultado Completo, abreviado:
{
"schema_version": 1,
"serial": "5F9FE801",
"id": "01a17216-f035-7ec5-adae-b90b6a0868a8",
"recipe": { "id": 3, "name": "Kit tray" },
"trigger": { "id": 420596, "source": "plc" },
"image": { "width": 2592, "height": 1944, "url": "/api/integration/v1/results/01a17216-f035-7ec5-adae-b90b6a0868a8/image" },
"captured_at": "2026-10-25T08:04:28.341Z",
"processing_ms": 82,
"judgment": "fail",
"pass": false,
"not_inspected": false,
"reason": "serial differs",
"judgment_source": "script",
"rules": { "judgment": "pass", "pass": true, "not_inspected": false },
"vars": { "serial": "SN-24-118734" },
"tools": [
{
"id": "01a15f8b-da07-7e42-8b3e-d3edaff79428",
"type": "classical.barcode",
"name": "Label",
"plc_slot": 1,
"judgment": "pass",
"score": 1,
"execute_ms": 4,
"detail": { "decoded": true, "data": "0104012345678901", "symbology": "data_matrix" }
}
],
"metadata": {},
"tags": [],
"plc_inspection_id": 1234,
"phase": "production"
}
judgment_sourceindica qué decidió el veredicto: las reglas, el script de la receta, oscript_errorcuando el script fallóruleses el veredicto de las reglas, incluso cuando el script lo decidióvarscontiene las variables que guardó la inspecciónimage.urlobtiene la imagen a través de la API HTTP
El heartbeat es pequeño:
{"schema_version":1,"serial":"5F9FE801","hostname":"line3-cam","recipe":"Kit tray","phase":"production","uptime_s":3600,"mqtt":"connected","ts":"2026-10-25T08:04:28.341Z"}
Recibir valores
Para traer un valor, declare una variable con MQTT como su fuente: el topic, y para JSON la ruta al campo. Cada inspección entonces guarda el último valor. Para algo más complejo, como seleccionar un campo del mensaje de un proveedor o responder solicitudes, use el script de la cámara.
Las configuraciones de MQTT viajan con las exportaciones de recetas, pero las contraseñas y los certificados nunca se exportan. Si la cámara de origen usó credenciales que la cámara de destino no tiene, MQTT llega desactivado. De lo contrario, mantiene la configuración de encendido o apagado de origen, por lo que una importación a una cámara que puede alcanzar un broker anónimo puede comenzar a publicar de inmediato. Revise Data Connectors después de cada importación.
A dónde ir después
- Script de la cámara, para sus propios topics y formatos de mensajes
- Variables
- API HTTP