4 Guía MQTT
¿Qué es MQTT?
MQTT es un protocolo de mensajería simple y liviano, diseñado para dispositivos con poca memoria y con bajo ancho de banda. Esto significa que es la solución perfecta para las aplicaciones de Internet de las cosas y automatización del hogar y, por lo general, es más flexible, estable y confiable que otros protocolos como WebSockets. MQTT te permite enviar comandos para controlar salidas digitales, leer y escribir datos en sus dispositivos y más.
Conceptos básicos de MQTT
En MQTT hay 3 conceptos básicos:
Temas (Topics):
Estos funcionan como la dirección de una casa, en este caso son las direcciones de un mensaje y determinan a donde se debe entregar, así es como se vería un tema con su respectivo mensaje:
Topic: MiCasa/Sala/Lampara
Mensaje: Encender
aquí el tema es Micasa/Sala/Lámpara y el mensaje es Encender, en este caso la lámpara recibirá el mensaje y se encenderá. Esta es la estructura básica de todos los mensajes que se envían a través de MQTT
Sistema de Publicación y Subscripción
Cada dispositivo puede suscribirse a temas, y recibirá todos los mensajes enviados con los temas a los que están suscritos. pueden suscribirse a múltiples temas y también a subtemas.
Además, al publicar un mensaje, los dispositivos deben proporcionar el tema para que el mensaje se pueda entregar correctamente.
Un dispositivo que está suscrito a Casa/# recibirá mensajes enviados a Casa/Sala y también aquellos enviados a Casa/CuartoPrincipal con solo usar el signo #.
Broker:
es el dispositivo central que permite y restringe las conexiones y también recibe, filtra, redirige y publica mensajes a todos los dispositivos conectados. En este caso, el Broker es el servidor de Smartnest.
¿MQTT es solo una herramienta para hablar con el servidor?
No, también puedes interconectar tus dispositivos usando este protocolo, por ejemplo, si tienes un sensor de movimiento y un sistema de iluminación, y están demasiado lejos el uno del otro, no necesitas instalar cables en la habitación para permitirles comunicarse, puedes hacer que la luz se suscriba al tema Casa/Dormitorio/Luz y puede hacer que el sensor publique los datos en ese tema, de tal forma estarán conectados entre sí y al mismo tiempo que se conectarán a Smartnet y todas las integraciones.
Smartnest y MQTT
En Smartnest, cada dispositivo tiene una ID único, este ID debe usarse como la primera parte de un tema.
Si se está enviando un mensaje al broker, la primera parte del tema debe ser el ID del dispositivo que está enviando el mensaje.
Si se está enviando el mensaje a otro de sus dispositivos, la primera parte del tema debería ser el ID del dispositivo al que envía el mensaje, el usuario puede personalizar las siguientes partes del tema.
Por ejemplo, este sería un tema válido desde dispositivo para Smartnest Broker:
Tema:
jasds3421FDC1CDSCDSfdsas/Habitacion/Temperatura
mensaje:
25
Mientras que este sería un mensaje inválido
Tema:
Bedroom/Temperature
mensaje:
25
El sistema solo permitirá la publicación de un mensaje si el ID es válido y pertenece al usuario que lo envía
Comandos MQTT de Smartnest
Hay algunos subtemas reservados para fines especiales. Aquí está la lista de todos los temas reservados:
Directivas:
Las directivas son enviadas desde el servidor al dispositivo cada vez que hay un nuevo comando de alguna de las integraciones.
Topic
Mensaje
Descripción
Soportado por
DeviceID/directive/powerState
ON - OFF
Encendido o apagado
Todos
DeviceID/directive/percentage
0-100
Porcentaje
Luz
DeviceID/directive/setpoint
-100 - 200
Punto deseado de temperatura
Termostato
DeviceID/directive/lockedState
true - false
true significa cerrar la cerradura
Cerradura
Reportes
Los reportes son enviados desde el dispositivo al servidor para informar de algún cambio de estado. Estos reportes son enviados siempre después de recibir una directiva y también si se produce algún cambio debido a una interacción física como presionar un botón.
Topic
Message
Description
Supported types
DeviceID/report/powerState
ON - OFF
Nuevo estado de poder
Todos
DeviceID/report/percentage
0-100
Nuevo porcentaje
Luz
DeviceID/report/setpoint
-100 - 200
Nuevo punto deseado
Termostato
DeviceID/report/temperature
-100 - 200
Nueva temperatura
Termostato,
Sensor de Temperatura
DeviceID/report/humidity
0 - 100
Nueva humedad
Termostato,
Sensor de Temperatura
DeviceID/report/pressure
>0
Nueva presión
Sensor de Temperatura
DeviceID/report/scale
C - F
Seleccionar la escala de T
Termostato,
Sensor de Temperatura
DeviceID/report/lockedState
true - false
Disp. abierto o cerrado
Cerradura
DeviceID/report/online
true - false
El disp. está conectado
Todos
DeviceID/report/info
(Any)
Para mostrar en la aplicación
Web
Todos
DeviceID/report/detectionState
true - false
Nuevo valor lógico
Sensor de Presencia ,
Sensor Contacto
DeviceID/report/notification
(Any)
Envía una notificación push
Todos
Solicitudes y respuestas
Las solicitudes son enviadas desde los dispositivos al servidor para solicitar información especial como la hora, el servidor responderá con un topic response y la información requerida en el mensaje.
Topic
Message
Description
DeviceID/request/time
GMT+XX
Obtener el tiempo real, el mensaje puede tener opcionalmente la zona horaria "GMT+XX", si la zona horaria no está presente en el mensaje se enviará la hora de GMT+00
DeviceID/response/time
HH:MM:SS
Responde la solicitud de hora.
Reglas en MQTT en Smartnest
En Smartnest somos una comunidad de automatización del hogar y todos estamos utilizando los mismos recursos web, de tal modo que deben existir reglas para garantizar un servicio continuo, seguro y confiable. Estas son las reglas que todos deben seguir al usar comandos MQTT:
La conexión al broker solo se permitirá cuando se proporcione un nombre de usuario y contraseña válidos
La conexión se permitirá cuando la ID del dispositivo utilizado pertenezca al nombre de usuario utilizado
La primera parte del topic MQTT debe ser un ID válido de uno de los dispositivos del usuario utilizado
Se debe evitar enviar mensajes a los temas reservados con demasiada frecuencia y se debe enviar sólo cuando el estado del dispositivo ha cambiado.
los dispositivos que no sigan estas reglas se desconectan y bloquean automáticamente por el sistema, el primer bloqueo es por 1 minuto, el segundo es por 2 minutos el tercero por 4 y así sucesivamente.
Última actualización