Conexión MQTT y autenticación

Host, puerto, TLS y cómo autenticarse con tu ApiToken.

Conexión al broker MQTT público

ParámetroValor producciónValor dev local
Hostabior.artmosquitto (dentro del docker network)
Puerto8883 (TLS)1883 (plaintext)
TLSSí, certificado de Let's EncryptNo
Keep-alive60 s recomendado60 s

Autenticación

Abior usa el plugin mosquitto-go-auth que valida usuario/contraseña contra Django via HTTP.

  • Usuario MQTT = <ApiToken.key> del dispositivo (lo obtienes al crearlo, ver siguiente hoja).
  • Contraseña MQTT = token (literal, hoy; será dinámico en futuras versiones).

El plugin valida cada CONNECT contra:

POST /api/auth/mqtt/check_user/
POST /api/auth/mqtt/check_acl/

Si el token está activo y tiene permiso sobre el topic, el broker acepta la conexión.

Variables de entorno relevantes (settings Django)

MQTT_BROKER_PUBLIC_HOST = 'abior.art'        # Host público para devices
MQTT_BROKER_PUBLIC_PORT = 8883               # TLS
MQTT_BROKER_HOST = 'mosquitto'               # Host interno (Docker)
MQTT_BROKER_PORT = 1883                      # Plaintext interno

ACL (qué puede publicar/suscribir cada device)

Cada ApiToken solo tiene permiso sobre topics de su propio device:

  • abior/{tu_device_id}/sensors/+ (publicar lecturas)
  • abior/{tu_device_id}/state (publicar online/offline)
  • abior/{tu_device_id}/ack/+ (confirmar comandos recibidos)
  • abior/{tu_device_id}/commands/+ (suscribirse a comandos del servidor)
  • abior/{otro_device_id}/... (rechazado)

Esto evita que un device comprometido escuche o envíe a otros.

Volver al capítulo completo

Conexión MQTT y autenticación — Conectar dispositivos IoT a Abior — guía técnica para makers — Abior | Abior