MQTT
Introducción
Esta sección describe la integración con la plataforma Gear Studio utilizando MQTT. Esta funcionalidad está orientada a permitir la integración con dispositivos de una variedad de fabricantes, así como dispositivos desarrollados a medida con Arduino, nodeMCU, Raspberry Pi y cualquier otra plataforma que soporte comunicación a través de MQTT con seguridad TLS.
Alternativas de integración
Existen dos alternativas de integración por MQTT:
- Intercambio de datos flexible (recomendado): El intercambio flexible permite la recepción de datos desde los dispositivos (uplink), así como el envío de datos hacia los dispositivos (downlink). Es sumamente flexible y puede implementarse con facilidad.
- Puente HTTP (para migración de dispositivos): el puente HTTP permite migrar dispositivos que utilizan la interfaz HTTP, de manera que en su lugar utilicen MQTT.
Importante: el puente HTTP está diseñado principalmente para la migración de dispositivos desde HTTP hacia MQTT, pero para dispositivos nuevos, es conveniente utilizar el intercambio de datos flexible, que puede verse aquí. El intercambio de datos flexible permite representar los datos con mucha más flexibilidad, y generalmente de una forma más compacta.
Autenticación y seguridad
Cada instancia de Gear Studio tiene su propio servidor MQTT dedicado, usualmente preparado para conexiones seguras con TLS en el puerto 8883. La conexión al servidor MQTT requiere:
- Usuario y contraseña, que pueden gestionarse a través de la opción “Configuración MQTT” dentro de la sección “Seguridad” de la aplicación Gear Manager. El id de usuario se utiliza también como sufijo de todos los topics de MQTT.
- Certificado TLS, que se utiliza para que el dispositivo pueda verificar que está conectado al servidor correcto.
Uso de un Client ID
Algunos clientes MQTT requieren que se defina un “Client ID” previo a la conexión, y otros permiten que se utilice uno al azar. En caso de que sea necesario definir un Client ID en forma explícita, recomendamos utilizar un string que contenga el usuario, y luego algún sufijo único. Por ejemplo, puede seguirse una nomenclatura como la siguiente:
{client-secure-id}{valor-generico}
Ej: 16SAD5656S****01
Dónde:
- 16SAD5656S es el usuario que se utiliza en la conexión, y
- 01 es el "valor genérico", que debería ser diferente para cada conexión.
Integración de dispositivos
Introducción Esta sección explica cómo integrar dispositivos en la plataforma Gear Studio, es decir: Cómo conseguir que los dispositivos envíen datos a la...
Intercambio de datos flexible
Introducción El intercambio de datos flexible es la forma de integración por MQTT recomendada en la plataforma Gear Studio. Todos los dispositivos MQTT...