- Escrito por: Andrés David Varela Baquen
- Categoría: Videovigilancia
- Publicado:
Crear aplicaciones para IoT (Parte 1/2) ¿Qué es MQTT y cómo funciona en las cámaras BOSCH?
Claridad, implementación de filtro, y escalabilidad son algunas de las ventajas de usar MQTT en lugar de obtener los metadatos directamente de la cámara.
Introducción
Formato ONVIF para transmisión de “metadata” por MQTT
ONVIF Perfil M admite la configuración de analíticas y la consulta de información para metadatos, así como el filtrado y la transmisión de estos mismos. Con este perfil, las aplicaciones pueden utilizar los metadatos para su propio uso personalizado, como crear un tablero que muestre la cantidad total de personas que pasan por la pasarela o activar un evento cuando hay demasiadas personas en el área. Dentro de la implementación de ONVIF Perfil M se encuentra el soporte para MQTT para la comunicación con una plataforma o aplicación IoT.
- Bosch ha implementado ONVIF Perfil M con soporte MQTT en sus cámaras (CPP6, CPP7 y CPP7.3) en el firmware 7.81.0060 y en adelante. Esto permite que las aplicaciones y las plataformas de IoT reciban eventos y contadores de IVA a través de MQTT.
¿Qué es MQTT?
“MQTT es un protocolo de transporte de mensajería de publicación/suscripción de Cliente y Servidor. Es liviano, abierto, simple y diseñado para ser fácil de implementar. Estas características lo hacen ideal para su uso en muchas situaciones, incluidos entornos restringidos, como la comunicación en contextos de máquina a máquina (M2M) e Internet de las cosas (IoT), donde se requiere una huella de código pequeña y/o el ancho de banda de la red es un bien escaso.” Tomado el texto de la especificación oficial de MQTT
Las principales ventajas de usar MQTT en lugar de obtener los metadatos directamente de la cámara son:
Claridad
Sin decodificación de bits y bytes, los datos están en formato JSON (Notación de objetos de JavaScript) con información legible por humanos.
Es ligero
Menos carga en la cámara. La cámara solo publica sus metadatos en un intermediario MQTT, mientras que los clientes consumen los metadatos del intermediario MQTT, por lo tanto, varios clientes pueden recibir los mismos datos de metadatos sin tener que aumentar la carga en la cámara.
Implementación de filtros
Los clientes pueden aplicar filtros a los temas de MQTT para recibir solo los metadatos que son de interés, por ejemplo, solo el mensaje de contador, lo que reduce la carga del cliente y le permite interactuar con muchas más cámaras.
Escalabilidad
MQTT puede admitir múltiples suscriptores (aplicaciones) y múltiples editores (cámaras). Esto permite que múltiples clientes de diferentes aplicaciones reciban los metadatos de las cámaras sin agregar ninguna carga adicional a las cámaras. La arquitectura de MQTT permite tanto la redundancia como la descentralización.
El perfil M de ONVIF implementado por BOSCH
En los siguientes capítulos, se proporciona una guía paso a paso desde la configuración del cliente MQTT de la cámara y la explicación de cada tema MQTT que puede transmitir. Antes de hablar sobre la configuración, hay cierta terminología de MQTT que se debe tener en cuenta:
Un intermediario MQTT es una pieza de software que actúa como un servidor o concentrador que distribuye mensajes MQTT a clientes que se suscriben a los mensajes y reciben mensajes MQTT de la cámara, por ejemplo: Eclipse Mosquito.
Un tema o tópico MQTT, como su nombre lo indica, este es el nombre de los datos que desea recibir, viene en el formato de "xxxx/yyyy/zzzz/...", cada una de las secciones del tema se utiliza como un asunto diferente relacionado con los datos, de ahora en adelante una aplicación cliente puede aplicar un filtro para recibir solo los datos que le interesan. Para obtener más información sobre el filtrado de temas MQTT, siga este enlace.
- El suscriptor de MQTT es el cliente (aplicación) que desea recibir los metadatos del MQTT Broker (intermediario MQTT).
- MQTT Publisher es un cliente en la cámara que envía los metadatos al MQTT Broker.
- Para utilizar MQTT, se necesita un intermediario MQTT (Broker MQTT) en la red. Puede ser uno en la misma red que las cámaras o uno alojado en la nube. Las cámaras de Bosch se conectan mediante MQTT 3.11.
- Nota: los servidores MQTT suelen admitir varias versiones de clientes, pero un cliente debe elegir una al conectarse. Las diferencias entre las versiones para publicar son mínimas.
Configuración
- Ajustes MQTT en la cámara BOSCH usando Configuration Manager
- Necesitará tener instalado Configuration Manager 7.50 o posterior (Descarga). Los siguientes pasos son aplicables si agrega la cámara a su sistema de forma nativa o como una cámara ONVIF.
Paso 1
Agregue la cámara Bosch en Configuration Manager o escanee la red, si aún no lo ha hecho.
Paso 2
Vaya a Configuración Red MQTT y verá la siguiente pantalla:
- Agregue un Broker MQTT (Intermediario MQTT)
- Nota: Cada cámara puede admitir múltiples agentes MQTT; en muy raras ocasiones, es posible que necesite una configuración de este tipo. Sin embargo, tenga en cuenta que cada agente MQTT al que se conecta una cámara es un flujo RTSP de metadatos adicional. Cuantas más transmisiones deba manejar una cámara, mayor será la carga para la cámara. Se permite un máximo de 4 entradas.
Dirección
La dirección IP del agente MQTT + el número de puerto. Por lo general, un agente MQTT utiliza el puerto 1883. Consulte la configuración de su agente MQTT o el número de puerto exacto. También se necesita el protocolo utilizado para conectarse al MQTT, ya sea mqtt:// o mqtts://. Ejemplo: mqtt://192.168.2.1:1883.
- Nota: La implementación aún no admite direcciones URL, como los intermediarios de MQTT en la nube; solo se admite la dirección IP.
Prefijo del tema (tópico)
Este es el identificador único de la cámara dentro del tema. Debe asegurarse de que este prefijo sea único; de lo contrario, los clientes recibirán datos incorrectos o el intermediario MQTT rechazará la conexión. Puede utilizar el nombre de la cámara (sin espacios) o la dirección IP de la cámara, siempre que sea única en todo el sistema.
Nombre de usuario
Nombre de usuario necesario para la conexión al agente MQTT, consulte la configuración de su agente MQTT.
Contraseña
Contraseña necesaria junto con el nombre de usuario.
ID de Certificado
No se usa, se deja en blanco.
Filtro de publicación
Es posible limitar los temas que se publicarán al intermediario MQTT, esto puede ayudar a reducir el tráfico de red y el ancho de banda requerido. A continuación, se muestran dos ejemplos que ilustran cómo funciona este filtro:
- Ejemplo 1: publicar solo mensajes del motor de reglas. Publicar filtro: “tns1:RuleEngine//.”
- Ejemplo 2: publicar solo el mensaje de contador del motor de reglas y los estados de E/S. Publicar filtro: “tns1:RuleEngine/CountAggregation//.|tns1: Device//.”
- QoS: MQTT admite 3 niveles de QoS (Calidad de servicio); según los requisitos de su aplicación, puede configurar la QoS de su mensaje MQTT como:
- Como máximo una vez (nivel 0): normalmente, este es el nivel que se usa con más frecuencia.
- Al menos una vez (nivel 1)
- Exactamente una vez (nivel 2)
- Para obtener detalles sobre cada nivel, puede consultar esta publicación de blog sobre los aspectos básicos de MQTT.
Espere la segunda parte de las implementaciones IoT y MQTT con cámaras IP de BOSCH en el próximo artículo.
¿Más Información?
¿Le interesa más información sobre algún producto mencionado en esta nota?
Le pondremos en contacto con un experto representante de marca quien lo ayudará.
Andrés David Varela Baquen
Mercadeo de Producto para Soluciones de Software y Video Vigilancia – Bosch Sistemas de Seguridad
Ingeniero en mecatrónica de la Universidad Militar Nueva Granada con especializaciones en Gerencia del Servicio y Gerencia de Mercadeo de la Universidad EAN.
Asociado de Bosch Sistemas de Seguridad desde Agosto de 2005 con experiencia en diversas áreas de la compañía como Ingeniero de Centro de Servicios y Reparaciones; Ingeniero de Soporte Técnico; Entrenador de Sistemas de Control de Acceso, Cámaras de Videovigilancia y Sistemas tipo DVR, NVR y VMS.
Desde el año 2014 está desempeñando el rol de Analista de Mercadeo de Producto para las líneas de videovigilancia con énfasis en VMS y NVR, y soluciones de videovigilancia como servicios (VSaaS).