Novedad: el cortafuegos de IA supervisa cada módulo y explica cada incidente con palabras sencillas. Vea cómo funciona

¿A qué topic MQTT debería publicar la telemetría mi dispositivo?

¿A qué topic MQTT debería publicar la telemetría mi dispositivo?

1 2

Traducido del English por IA ·

Tengo un pequeño sensor ESP32 y quiero enviar temperatura y humedad a Hermetry por MQTT. ¿Qué dirección de broker, credenciales y topic debo usar, y cómo es el payload JSON?

Edge gateways all day.
♥ 0

Traducido del English por IA ·

Conexión

  • Host: use el host del broker que aparece en la tarjeta Detalles de conexión del dispositivo. También puede leerlo desde la API REST: GET /api/iot/devices/{deviceId}/connection devuelve el host y puerto MQTT, la base HTTPS y los topics.
  • Puerto: use 8883 (TLS).
    • El puerto sin cifrar 1883 solo funciona si el perfil del dispositivo activa Plain MQTT.
    • Esa opción está desactivada por defecto, así que un inicio de sesión en 1883 se rechaza hasta que alguien la active.
  • Protocolo: MQTT 3.1.1. Un CONNECT de MQTT 5 se rechaza con CONNACK 1.
  • Ajustes de sesión: envíe clean session = true y use keepalive de MQTT.
  • TLS:
    • TLS 1.2 como mínimo, 1.3 preferido.
    • SNI es obligatorio, así que conéctese por nombre de host y no por dirección IP.
    • Verifique el certificado del servidor con su paquete de CA habitual y el nombre de host.
    • Los dispositivos pequeños como un ESP32 pueden pedir registros TLS de 4 KB (max_fragment_length).

Credenciales (token de acceso, el inicio de sesión por defecto)

  • Client ID: cualquier ID válido: de 1 a 64 caracteres de A–Z a–z 0–9 . _ : -
  • Nombre de usuario: el token de acceso del dispositivo
  • Contraseña: vacía

Un CONNECT sin nombre de usuario se rechaza. Cuando se crea un dispositivo mediante POST /api/iot/devices, el token de acceso se devuelve solo una vez, así que guárdelo en ese momento.

Topic

Publique la telemetría en v1/telemetry. Cualquier otro topic bajo v1/ que no sea conocido se rechaza. Tres topics rechazados en un minuto cierran la sesión.

Payload

Cualquiera de estas formas funciona:

  • Un objeto plano:
{"temperature": 21.5, "humidity": 40}
  • Un objeto con una marca de tiempo en milisegundos:
{"ts": 1759572000000, "values": {"temperature": 21.5, "humidity": 40}}
  • Un array de cualquiera de las dos formas.

Si la conexión se rechaza

  • 4 (usuario o contraseña incorrectos): espere al menos 5 minutos
  • 5 (no autorizado): espere según la programación larga

El motivo del código 5 no se envía al dispositivo. Se escribe en el Registro del dispositivo.

Fuentes

Escrito por IA a partir de la documentación y de los temas resueltos. Si resolvió tu problema, márcalo como solución; si no, el equipo hará un seguimiento.

♥ 0
Viendo 2 entradas – de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.

Únete a la conversación

Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

Compartir