OpenMQTT Gateway Mensajes y Comandos presenta una forma potente y flexible de integrar sensores y actuadores de largo alcance en soluciones de domótica y telemetría industrial. Este artículo resume cómo los gateways exponen estado y configuración vía MQTT, qué contienen los mensajes de dispositivos detectados y cómo se pueden enviar comandos de vuelta al gateway, todo en formato entendible y aplicable a proyectos reales.

Estructura general de topics MQTT y estado del gateway: cada gateway publica información genérica bajo topics con nombres que incluyen el nombre del dispositivo y sufijos como version, LWT, SYStoMQTT y WebUitoMQTT. SYStoMQTT contiene datos como uptime, version, memoria libre, nombre del entorno, listado de modulos activos y parámetros de red. WebUitoMQTT informa opciones de la interfaz web como si la UI es segura o si se muestran metricas. Ademas, existe un topic por cada transport protocol detectado usando el sufijo transporttoMQTT que lista sensores y productos detectados por ese transporte.

Mensajes MQTT de dispositivos RF detectados: los payloads RF suelen incluir campos generales como model, id, protocol, channel, rssi y duration. El resto de campos es especifico del dispositivo e incluye por ejemplo battery_ok, temperature_C, humidity, rain_mm o status. Estos campos y su interpretacion dependen del decoder utilizado por la libreria rtl_433 o por el modulo especifico del gateway.

Mensajes MQTT de dispositivos Bluetooth BLE: los mensajes BLE tipicos contienen id, name, rssi y datos adicionales segun el tipo de dispositivo como uuid, major, minor, txpower en iBeacons o estados particulares de accesorios Bluetooth. El gateway incluye un interprete generico que permite capturar informacion de muchos dispositivos aun sin soporte explicito en la lista de compatibilidad oficial.

Enviar comandos MQTT al gateway: para controlar un gateway se envian payloads JSON al topic de comandos correspondiente. Primero hay que determinar la ruta base del dispositivo en tu broker, por ejemplo home/OpenMQTTGateway o el nombre que aparezca en tu explorador MQTT. El cuerpo debe estar en formato JSON y la opcion debe estar compilada en el binario del gateway para que sea aceptada. Cuando un comando es aceptado, el gateway publica la nueva configuracion en el topic de respuesta correspondiente.

Comandos generales y configuracion del gateway: opciones comunes en placas basadas en ESP32 incluyen reinicio con commands / MQTTtoSYS / config { cmd : restart }, borrado de flash con commands / MQTTtoSYS / config { cmd : erase }, mostrar estado con commands / MQTTtoSYS / config { cmd : status } y gestionar modo de bajo consumo con commands / MQTTtoBT / config { lowpowermode : 0 } para modo normal o lowpowermode : 2 para bajo consumo. Tambien es posible habilitar o deshabilitar autodiscovery, modificar credenciales WiFi con commands / MQTTtoSYS / config { wifi_ssid : nombressid , wifi_pass : password } y cambiar las credenciales del broker MQTT con commands / MQTTtoSYS / config { mqtt_user : usuario , mqtt_pass : clave , mqtt_server : host , mqtt_port : puerto , mqtt_secure : false } o actualizar el topico base y nombre de gateway con mqtt_topic y gateway_name.

Configuracion de gateways RF: puedes cambiar la frecuencia de escucha a cualquier valor en los rangos soportados enviando commands / MQTTtoRTL_433 { mhz : 315.026 } ajustar el umbral RSSI con commands / MQTTtoRTL_433 { rssi : 9 } o solicitar el envio del estado RF con commands / MQTTtoRTL_433 { status : 1 } para recibir un resumen detallado que incluye RTLRssi, RTLAVGRssi, RTLRssiThresh, RTLCnt, freeMem y otros indicadores de rendimiento.

Configuracion de gateways Bluetooth: para BLE es posible gestionar listas blancas y negras enviando commands / MQTTtoBT / config { black-list : [ 01:23:14:55:16:15 ] } o { white-list : [ 01:23:14:55:16:15 ] }. Para que el filtrado surta efecto hay que desactivar y luego reactivar la comprobacion con ignoreWBlist true o false. Se puede modificar el intervalo de escaneo con interval en milisegundos, forzar un escaneo inmediato con interval : 0, ajustar la duracion del escaneo con scanduration y controlar el tiempo de conexion periodica con intervalcnct. Otras opciones utiles incluyen onlysensors para limitar publicaciones a sensores, adaptivescan para adaptar el comportamiento segun la base de dispositivos, minrssi para filtrar por calidad de senal, pubadvdata para publicar datos de advertising y extDecoderEnable para publicar datos crudos y permitir el desarrollo de decoders personalizados.

Configuracion de modulos y sensores conectados: los modulos como pantallas SSD1306, sensores DHT11 DHT22 AHT10 AHT20 DS18B20, sensores de movimiento HCSR501, salidas PWM, entrada ADC y control de neopixels WS2812B pueden configurarse y controlarse mediante topics especificos del dispositivo. Entre las acciones estan medir un pin ADC, leer un boton digital, activar salidas on off, controlar PWM, leer temperatura y humedad, encender o apagar pantallas y mostrar logos, o activar logs seriales para depuracion.

Enviar datos a dispositivos detectados: la capacidad de transmitir desde el gateway hacia un dispositivo depende del transporte. En RF el gateway puede emitir codigos RF mediante mecanismos tipo RCSwitch usando topics de envio como home/OpenMQTTGateway/commands/MQTTto433 con parametros value, protocol, length y delay para reenviar tramas. No obstante, cambiar la configuracion interna de un dispositivo RF requiere que el dispositivo receptor soporte recibir y aplicar dichas ordenes, caracteristica poco habitual en sensores de bajo coste. En BLE existe la posibilidad real de leer y escribir caracteristicas usando comandos que especifican direccion MAC, UUID de servicio y UUID de caracteristica junto con el valor y tipo de dato para escribir o el TTL e immediate para controlar la operacion.

Conclusiones y aplicacion en proyectos empresariales: OpenMQTT Gateway es una solucion comunitaria muy madura para integrar productos de consumo en plataformas de automatizacion y analitica. Proporciona topics estandarizados con configuracion del gateway, datos de sensores y mecanismos de comando que permiten, por ejemplo, ajustar parametros de escaneo BLE, cambiar frecuencias RF y gestionar modulos conectados. Para proyectos a medida que requieren integracion con arquitecturas cloud, seguridad y analitica, es importante planificar la gestion de credenciales, la integracion con brokers MQTT profesionales y la capacidad de desplegar actualizaciones OTA.

Sobre Q2BSTUDIO: como empresa de desarrollo de software y aplicaciones a medida, en Q2BSTUDIO ofrecemos servicios integrales para proyectos IoT que incluyen desarrollo de software a medida, integracion con servicios cloud, seguridad y analitica. Si necesitas una aplicacion a medida que consuma y gestione mensajes MQTT, o quieres desplegar gateways y procesado en AWS o Azure, podemos ayudar y acompañar todo el ciclo de proyecto. Conecta con nuestro servicio de desarrollo de aplicaciones y software multiplataforma en desarrollo de aplicaciones a medida y conoce nuestras opciones de infraestructura y despliegue en la nube en servicios cloud AWS y Azure.

Palabras clave y servicios: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si buscas potenciar tu proyecto con integracion MQTT, analitica en tiempo real y seguridad avanzada, Q2BSTUDIO puede proveer soluciones escalables, seguras y optimizadas para produccion.