MQTT de equipos
Temas, autenticación, contrato del mensaje y qué hace INDUXA con cada lectura que llega por MQTT.
La forma principal de entrada para equipos, gateways y PCs.
Conexión
| Servidor | mqtt.induxa.pe |
| Puerto | 8883, MQTT sobre TLS 1.2 o 1.3 |
| Usuario y contraseña | Los del dispositivo, en su ficha › Conexión (se ven una sola vez al generarlos) |
| Sesión | Se conserva 25 horas: un equipo que duerme recibe sus comandos al despertar |
| QoS recomendado | 1 |
INDUXA guarda solo el hash de la contraseña. Se rechaza la conexión si el equipo está desactivado, si la empresa no está activa o si no tiene contratado el producto del equipo.
Temas
{empresa} es el id de la empresa y {codigo} el código del dispositivo (por ejemplo BO-001).
| Tema | Sentido | Para qué |
|---|---|---|
induxa/{empresa}/{codigo}/lecturas | el equipo publica | Valores de sus tags |
induxa/{empresa}/{codigo}/posicion | el equipo publica | GPS |
induxa/{empresa}/{codigo}/eventos | el equipo publica | Arranques, errores, cambios de estado |
induxa/{empresa}/{codigo}/comandos | el equipo se suscribe | Órdenes desde la consola |
induxa/{empresa}/{codigo}/comandos/ack | el equipo publica | Respuesta a cada orden |
Un equipo solo puede usar sus propios temas; todo lo demás se niega. Un gateway también publica lecturas y eventos a nombre de sus nodos o fuentes PLC activos.
Contrato del mensaje (versión 1)
{
"v": 1,
"id": "01J8Z3K6W2Q4T7",
"ts": "2026-10-25T20:15:00Z",
"dispositivo": "BO-001",
"datos": { "presion_descarga": 6.4, "caudal": 17.9, "en_marcha": true }
}| Campo | Obligatorio | Regla |
|---|---|---|
v | sí | Siempre 1 |
datos | sí | De 1 a 200 claves. Cada valor: número, verdadero/falso, texto de hasta 200 caracteres o null |
id | no | Hasta 64 caracteres. Sirve para descartar reenvíos |
ts | no | Fecha y hora ISO 8601 con zona |
dispositivo | no | Si viene, debe ser el mismo código del tema |
- Cada clave de
datoses un tag. Las claves se normalizan: minúsculas, sin tildes, soloa-z,0-9y_, hasta 60 caracteres. - Verdadero y falso se guardan como 1 y 0.
- Tamaño máximo del mensaje: 256 KB.
Posición:
{ "v": 1, "ts": "2026-10-25T20:15:00Z", "lat": -5.1945, "lon": -80.6328, "velocidad": 12.5, "rumbo": 90, "precision": 8 }lat y lon son obligatorios; la posición 0,0 se rechaza.
Qué hace INDUXA con cada mensaje
| Caso | Qué pasa |
|---|---|
| Clave nueva | Se crea el tag como por confirmar y su dato se guarda desde ya. Hasta 300 tags por equipo |
| Tag descartado | Se ignora |
Mismo id en 24 horas | Se descarta (reenvío) |
Sin ts, o con más de 1 día adelantado | Se usa la hora de llegada y la lectura se marca con calidad baja |
| Muy atrasado | Igual que el anterior. El límite depende del tipo de equipo: 1 día por defecto, hasta 400 días en registradores |
| Contrato inválido o equipo desconocido | Va a telemetria.errores para revisión |
| Equipo desactivado | Se ignora |
Comandos
{ "v": 1, "id": "c4f1…", "dispositivo": "BO-001", "nombre": "pedir_telemetria", "params": {}, "expira": "2026-10-25T20:20:00Z" }El equipo responde en …/comandos/ack:
{ "v": 1, "id": "c4f1…", "estado": "aplicado" }estado puede ser aplicado, rechazado o fallido (con error). Si no hay respuesta, INDUXA reenvía la orden cada
5 minutos hasta que vence. Las órdenes a las PCs de Desk van firmadas y el agente rechaza las que no lo están.