¿Qué plataforma estás usando?
¡Describe el problema con más detalle! El entorno, la plataforma, qué operaciones realizaste, qué fenómenos observaste y cuál es el objetivo.
, utilizando la plataforma en la nube OneNET, ahora quiero lograr una comunicación de datos entre MQTTX y la plataforma en la nube. Después de suscribirme normalmente a un tema, cuando publico un mensaje en este MQTTX, debería recibir una respuesta indicando éxito o error. Sin embargo, tras publicar el mensaje, solo aparece que el dispositivo se está reconectando y luego indica conexión exitosa. Pareciera que no hay problema con la conexión del dispositivo; si no hay respuesta, ¿podría ser un problema con la suscripción? Pero he seguido todos los pasos de operación normales.
Parece que estás enfrentando un problema muy típico al usar MQTTX para simular la comunicación del modelo de dispositivo OneNET: “al publicar un mensaje, se reconecta inmediatamente y no hay registros en la nube”.
Esto normalmente no se debe a una mala conexión de red, sino que el servidor de OneNET, tras recibir tu paquete, detecta que este no cumple con las especificaciones del protocolo o con la definición del modelo de dispositivo, y como medida de protección del servidor, aplica directamente una desconexión forzosa.
Podemos investigar desde las siguientes causas principales:
1. Identificador del modelo de dispositivo (Identifier) no coincide
OneNET realiza una verificación extremadamente estricta sobre el campo params en el JSON.
- Verifica: ¿Confirmaste que los identificadores de propiedades definidos en la nube realmente sean
air_CO2yair_humidity? - Atención: Los identificadores distinguen mayúsculas y minúsculas. Si en la nube está definido como
Air_CO2, pero tú envíasair_CO2, OneNET lo considerará datos ilegales y te desconectará.
2. Formato JSON y tipo de dato
Según tu captura de pantalla, la estructura JSON es básicamente correcta, pero hay un detalle importante:
- Tipo numérico: El valor después de
valuees la cadena"500"(entre comillas dobles). Si en la plataforma OneNET has definidoair_CO2como tipointofloat, aquí no debes incluir comillas. - Sugerencia de corrección:
"air_CO2": { "value": 500, // Elimina las comillas "time": 1706673129818 }
3. Marca de tiempo (Timestamp) demasiado antigua
En tu mensaje, el campo time es 1706673129818 (corresponde a enero de 2024).
- Riesgo: Aunque algunas plataformas permiten enviar datos históricos, si la diferencia entre esta marca de tiempo y la hora actual del servidor (2026) es demasiado grande, podría activarse un mecanismo de seguridad o filtro de datos de la plataforma.
- Prueba: Intenta eliminar completamente el campo
time, o actualízalo a la marca de tiempo actual. OneNET por defecto usará la hora en que el mensaje llegue al servidor.
4. No se ha suscrito al tema de respuesta (Post_reply)
Mencionaste: “¿Será que hay un problema con la suscripción si no recibo respuesta?”. En el protocolo del modelo de dispositivo OneNET:
- El tema al que publicas es:
$sys/{pid}/{device-name}/thing/property/post - El tema de respuesta del servidor es:
$sys/{pid}/{device-name}/thing/property/post_reply - Solución: Debes hacer clic previamente en "New Subscription" en MQTTX para suscribirte a este tema que contiene
_reply. Solo así podrás ver en la interfaz de MQTTX la retroalimentación del servidor (ya sea confirmación o código de error).
5. Revisa los registros (logs) de la plataforma OneNET
Tu segunda imagen muestra que el “registro de eventos” está vacío. Te recomendamos cambiar a la pestaña “registro de operaciones” o revisar los registros en tiempo real en la sección “depuración del dispositivo”.
Si la conexión es exitosa pero la publicación falla, normalmente el registro de operaciones de OneNET mostrará un código de error específico (por ejemplo: fallo al analizar el formato de datos).
Pasos sugeridos para realizar pruebas:
- Simplifica el mensaje: Envía solo una propiedad sencilla, sin marca de tiempo ni comillas innecesarias.
{ "id": "123", "version": "1.0", "params": { "air_CO2": { "value": 500 } } } - Suscríbete al Reply: Antes de publicar, asegúrate de haber suscrito el tema
$sys/24A1J1S6kn/dev1/thing/property/post_reply. - Observa el momento de desconexión: Si justo al hacer clic en enviar, la esquina superior derecha de MQTTX se vuelve roja, es 100% seguro que el Payload (contenido del mensaje) no cumple con los requisitos del modelo de dispositivo OneNET.
Vale, gracias. Lo intentaré de nuevo mañana. ![]()


