Texto copiado

MQTT Broker Tutorial – Build IoT Aplicación mejor

Panorama general

Cristal Bevywise MQ Broker Overview

BevywiseMQTT Brokeres un completo IoT Application Suite con un MQTT Broker incorporado. Actúa como un MQTT central servidor, que facilita la comunicación entre dispositivos de borde habilitados para MQTT / Internet de Cosas (IoT) dispositivos y recopila datos que se pueden almacenar para análisis y visualización de datos.

CrystalMQ Broker utiliza el transporte de telemetría de búsqueda de mensajes (MQTT) protocolo como su protocolo de mensajería estándar / protocolo de comunicación.MQTTtrabajos basados en la subscripción publica modelo. Le proporciona un marco totalmente extensible que ayuda usted construye potente IoT/IIoT Aplicación para cualquier caso de uso industrial.

Versiones MQTT compatibles :

  • MQTT 3.1
  • MQTT 3.1.1
  • MQTT 5
Nota:MQTT Broker admite chispado MQTT B para industriales comunicación.

MQTT Sparkplug B - Por favor, compruebeMQTT Sparkplug B supportsección para saber más.
Funciones clave

Mensajería basada en temas:Cristal MQ utiliza un modelo de mensajería basado en temas donde los mensajes son publicados en temas específicos, permitiendo a los suscriptores recibir solamente datos relevantes basados en sus suscripciones.

QoS Handling:CrystalMQ admite diferentes niveles de calidad de servicio (QoS) (0, 1, 2) para asegurar el mensaje fiabilidad y garantía de entrega, basado en los requisitos del escenario de comunicación.

Gestión de contactos:Gestiona las conexiones de clientes, incluyendo establecer, mantener, y la terminación de conexiones MQTT, así como la manipulación de retries de conexión y timeouts.

Seguridad:Proporciona características de seguridad tales como encriptación TLS, mecanismos de autenticación (nombre de usuario/palabra, certificados de cliente), y control de acceso para garantizar una comunicación segura y autorizada.

Persistencia:Ofrece opciones de persistencia de mensajes para almacenar y gestionar mensajes, asegurando la entrega de mensajes incluso en caso de interrupciones temporales de la red o falta de disponibilidad del cliente.

Escalabilidad:Con su capacidad de escalar para apoyar a millones de concurrentes conexiones, destaca como el MQTT Broker más escalable y de alto rendimiento disponible.

Empieza.

Esta sección ofrece una guía completa para descargar e instalar la versión de Bevywise MQTT Broker en sus máquinas o servidores. Además, cubre instrucciones para conectar dispositivos y probar mensajes escenarios (publicar y suscribir) con el corredor.

Nota:Aparte de los métodos de despliegue detallados en este sección, si te interesa en la exploración de una versión anfitriona de la MQTT Broker, simplementeRegistrarse para una cuenta. Esto le permite conectar sus dispositivos directamente sin la molestia de mantenimiento del servidor.
Seleccione su Plan

Tenemos varios planes adecuados para varios casos de uso, a saber:

  • Developer Plan
  • Lite Plan
  • Plan de inicio
  • Plan institucional
Desarrollador Lite Starter Enterprise
Fully FREE MQTT Broker Premium Premium Premium
Hasta 10 conexiones de dispositivo Hasta 100 conexiones de dispositivo Conexiones basadas en requisitos personalizados Conexiones basadas en requisitos personalizados
Soporte de protocolo completo - 3.1, 3.1.1 y 5.0 Soporte de protocolo completo - 3.1, 3.1.1 y 5.0 Soporte de protocolo completo - 3.1, 3.1.1 y 5.0 Soporte de protocolo completo - 3.1, 3.1.1 y 5.0
Sin restricciones de fuerza Almacenamiento personalizado Multi-tenanacy - Labelling blanco
Incluido y más y más y más
Descargar Comprar ahora Contáctenos Contáctenos

Para el Plan de Desarrolladores (versiónFREE), puede obtener directamente su gratis paquete usando elEnlace de descarga.

Para los planes Premium, por favorsoporte de contactopara obtener su licencia " construir.

Instalar CrystalMQ Broker

Nuestro corredor de mensajería puede funcionar en cualquier máquina privada / local / servidor físico en un entorno on-premise o también se puede ejecutar en docker.

Es agnóstico de la nube y puede ser alojado en cualquier plataforma de la nube.

Actualmente se presta apoyo a los siguientes sistemas operativos para ejecutar paquete descargable.

  • Windows 10 o Superior
  • Ubuntu 20 o superior
  • RHEL 9.x

También tiene la opción de desplegar el MQTT Broker con sólo uno haga clic enAWSyAzure Mercado.

Para ejecutar MQTT Broker como docker, por favor utilice el enlace de abajo para empezar con:Corre como un docker.

Instalar Cristal MQ con archivo descargable

Windows

  • Ejecute el archivo ejecutable (Bevywise_CrystalMQ_5.0.exe).
  • Haga doble clic en el archivo “runbroker.bat” dentro de la carpeta Bevywise/CrystalMQ/bin.

O

  • Abra cmd como administrador y vaya a la carpeta Bevywise/CrystalMQ/bin.
  • A continuación, escriba “runbroker.bat” y golpe enter.
cd./Bevywise/CrystalMQ/bin

corredor.bat

Linux

Ventana terminal abierta. Vaya a la ruta donde se descarga el MQTT Broker paquete se encuentra " descifrar el archivo.

unzip Bevywise_CrystalMQ_Linux.zip
  • Carpeta de bin abierta en el paquete descompuesto. Ubicación típica puede ser Descargas/Animación/CrystalMQ/bin
  • Ahora corre sh corredor. #
cd./Downloads/Bevywise/CrystalMQ/bin

Sh Runbroker. #

Por defecto, el corredor comienza en la dirección IP localhost (127.0.0.1) / máquina IP y escucha en el puerto 1883.

Abra su navegador web y vaya a http://localhost:8080/ (Sustitución) "localhost" con su dirección IP) en la barra de direcciones para acceder al tablero de MQTT.

Otras formas de iniciar MQTT Broker

El otro método a través del cual puede iniciar el corredor de mensajes es por que lo ejecute como un servicio. El corredor de ejecución como servicio le ayuda a iniciar el bróker automáticamente cuando la máquina comienza. Usted puede evitar ejecutarlo cada vez desde el terminal o el comando prompt.

Para Windows

Para iniciar el servicio CrystalMQ,

  • Ingreso de comando abierto en modo administrador. Vaya a ./Bevywise/CrystalMQ/bin y Corre CreateCrystalMQSvc.bat. Esto creará el servicio Crystal MQ y comienza lo mismo.

cd./Bevywise/CrystalMQ/bin

CreateCrystalMQSvc.bat

Para detener a Crystal Servicio MQ,

  • Ingreso de comando abierto en modo administrador. Ir a ./Bevywise/CrystalMQ/bin y correr RemoveCrystalMQSvc.bat. Esto de excluir al corredor y loá eliminar de los servicios.

cd./Bevywise/CrystalMQ/bin

RemoveCrystalMQSvc.bat

Para Linux

La carpeta de bin (Bevywise/CrystalMQ/bin) contiene el archivo RunAsService.sh. Corre este archivo para activar el archivo de servicio ’ y “path” (configurado como un enlace simbólico redirigir a la carpeta “/opt/Bevywise”).

cd./Bevywise/CrystalMQ/bin

sh RunAsService.sh

Ahora, para empezar el servicio, use

Sudo systemctl start cristalmq. servicio

Para comprobar el estado, use

sudo sistemactl status cristalmq. servicio

Para detener el servicio, uso

Sudo systemctl stop cristalmq. servicio

Nota:Tenga en cuenta que antes de intentar correr como un servicio asegúrese de que lo dejaste correr manualmente.
Prueba de la conexión con Bevywise IoT Simulator

ElBevywise IoT Simulatores una herramienta de simulación de datos MQTT que permite crear y simular varios dispositivos simultáneamente. Esto permite para realizar pruebas de carga y probar conectividad eficientemente.

MQTT Protocol Supported - MQTT 3.1, & 3.1.1

Prerrequisitos

Asegúrese de que ha descargado IoT Simulator en su máquina antes de proceder. Si no, descargarlo usando el enlace de abajo.

Simulador de IoT Gratis Descargar
  • Abra su navegador web y vaya a http://localhost:9000/ (reemplazar "localhost" con su dirección IP) en la barra de direcciones para acceder al panel Simulador IoT.
  • Cree una red nueva y configure los ajustes de corredores como a continuación.
Aplicaciones Gerente : Otros
Dirección IP de Broker :
TLS / SSL : Activado / Discapacitado (Basado en el set de configuración en broker.conf).
Puerto de enlace : 1883 (Cambia automáticamente a 8883 si está habilitado TLS).
Root-Certificado : Déjalo vacío si la TLS está deshabilitada.
Sesión limpia : 0 (0-False, 1-True).
  • Cree un nuevo dispositivo.
  • Puede haber diferente de la configuración del evento IoT. Seleccione a cualquiera de la lista y definir tema, formato de datos, " variante basada en la necesidad.
  • Ahora haga clic en 'Red' para conectar el dispositivo con MQTT Broker. Puede crear " simular múltiples dispositivos siguiendo el mismo método.
  • Puede comprobar el panel MQTT Broker para la actividad del dispositivo.

Clientes MQTT

Tenemos documentos completos para ayudarle a conectar variosMQTT clientesa nuestro corredor de CrystalMQ. Esas guías proporcionarán instrucciones y percepciones detalladas, asegurar una experiencia de integración perfecta con CrystalMQ. Haga clic en el enlace de abajo para empezar con nuestros clientes MQTT instantáneos.

Clientes MQTT Documentación

Detalles técnicos

Esta sección explica los requisitos de hardware y archivos " directorios para configuraciones de alto nivel.

Requisitos de hardware

Los requisitos de hardware varían en función de la velocidad y tamaño del mensaje.

Sin embargo, por favor encuentre los requisitos mínimos a continuación para su referencia.

  • CPU - 1 núcleo o superior
  • RAM – 2 GB o más
  • Disco duro – 50 GB o más

Presentando carpetas de rotor MQTT

Después de completar el proceso de instalación, descubrirá el siguiendo archivos y carpetas ubicados en la ruta especificada.

Folder Descripción Archivos
bin Contiene archivos ejecutables 1. runbroker.bat / runbroker.sh - Para iniciar el broker
2. stopbroker.bat / stopbroker.sh - Para detener el broker
3. Crystalmq. service - sistemad linux service file
4. RunAsService.sh - Para ejecutar el broker como un servicio en linux
5. install_mysql_connector.sh /
install_mysql_connector.bat - Para instalar el conector mysql & otras dependencias.
Certificado
./root
./servidor
./cliente
Certificados para comunicación TLS / SSL .root/root.crt - Autofirmado CA.
.server/server.crt - certificado firmado por el servidor CA
.server/server.key - servidor basado clave privada
.client/client.crt - certificado firmado por CA
.client/client.key - clave privada basada en el cliente
conf Contiene archivos configurables mqtt.conf
MQTT Authentication
Configuración TLS
UTF Apoyo
ACL
Clustering

application.conf
Configuración UI
Manejo de registros

datastore.conf
Configuraciones relacionadas con bases de datos
extensiones ganchos de pitón extensibles custom_auth.py - Para personalizar la autenticación
custom_scheduler.py - Para añadir algoritmos AI / ML
custom_store.py - Para integrar aplicaciones de terceros
custom_ui_server.py - Para personalizar UI según sea necesario
lib archivos de biblioteca esenciales para el funcionamiento del corredor
licencia Contiene licencia Broker licencia.dat - archivo de licencia premium
troncos Registros de errores broker.log - Captura los últimos registros de errores
ui Lista completa de archivos html de extremo frontal, css, jss de MQTT Broker
datos Base de datos SQLite bevywise - Base de datos que almacena datos recibidos y enviados por broker (si SQLITE es seleccionada como opción de almacenamiento de datos)

Technical Support

Para cualquier consulta técnica sobre MQTT Broker o necesidad de discutir su requisitos, usted puede siempre nos alcanzan

Correo electrónico:[email protected]
Mensaje : https://www.bevywise.com/contact-us.html
TeléfonoIndia - +91 8072398868 / US - +1 707 879 8999

MQTT 5 Broker Properties

Esta sección proporciona la vista detallada sobreMQTT 5propiedades y las configuraciones que se pueden configurar para jugar con esta versión de protocolo.

Gastos de período de sesiones

MQTT 5 presenta el concepto de período de sesiones y expiración de mensajes. Clientes puede establecer intervalos de expiración de la sesión, permitiendo al corredor limpiar las sesiones de clientes desconectadas después de un período especificado.

Puede configurar y configurar el intervalo de expiración de sesión en el corredor. conf

SESSION_EXPIRY_INTERVAL = -1

#Si se establece a (-1) valor del paquete CONNECT se utiliza para cada cliente

Puede definir un plazo específico para la expiración de la sesión. Una vez configurado, Las sesiones de clientes desconectadas se eliminarán automáticamente después de la duración especificada.

Usted tiene la opción de establecer un intervalo de expiración de sesión universal para todos dispositivos.

Además, puede establecer intervalos de expiración de sesión individuales para cada sesión cliente estableciendo el valor a -1. En este caso, el corredor comprobará el paquete CONNECT de cada cliente para la expiración de la sesión valor de intervalo, y utilizará estos valores para gestionar la limpieza de sesión en consecuencia.

Recibir el máximo

La propiedad RECEIVE MAXIMUM se utiliza para indicar el número máximo de QoS 1 y QoS 2 mensajes que el cliente puede procesar simultáneamente. Esto aumenta la flexibilidad y la eficiencia envío de mensajes procesamiento simultáneo de mensajes, lo que permite una mejor utilización de los recursos y mejorada dinámica de manejo de mensajes entre clientes y corredor.

Puede configurar y configurar los números en el broker. bienes inmuebles SERVER_RECEIVE_MAXIMUM.

#Default: 65535

SERVER_RECEIVE_MAXIMUM = 65535

El valor de SERVER_RECEIVE_MAXIMUM puede oscilar entre 1 y 65.535.

Un valor de 0 indica que el cliente no puede procesar ningún QoS 1 o QoS 2 mensajes simultáneamente, desactivar efectivamente estos niveles de QoS para el cliente.

QoS máximo

MQTT Brokerpuede informar al cliente sobre lo más altoNivel QoSsoporta incluido el Máximo QoS en el paquete CONNACK durante el establecimiento de conexión.

Al recibir el QoS Máximo del corredor del paquete CONNACK, el cliente debe adherirse a este nivel máximo de QoS al enviar paquetes PUBLISH.

Sin embargo, el corredor todavía puede aceptar paquetes SUBSCRIBE de clientes que contiene un QoS solicitado de 0, 1, o 2, independientemente de su soporte para paquetes QoS 1 o QoS 2 PUBLISH.

Puede definir Maximum QoS en broker. conf

#Default: 2

MAXIMUM_QOS = 2

Tamaño máximo del paquete

El paquete máximo Tamaño propiedad es utilizado por el corredor para notificar al cliente sobre el máximo tamaño permitido para paquetes. Se requiere que el cliente no envíe paquetes más grandes que este límite a el servidor. Si el servidor recibe un paquete que excede este límite de tamaño, se considera un Error de Protocolo, y el servidor desconectará al cliente usando el paquete DISCONNECT.

Puede configurar el tamaño máximo del paquete en el corredor. Conf como abajo.

#Default: 268435460

SERVER_MAXIMUM_PACKET_SIZE = 268435460

#Maximum 5 Bytes for Fixed Header + longitud máxima restante 268435455

Tema Alias Máximo

El "Topic Alias Maximum" es una propiedad utilizada para especificar el máximo Número de tema alias que un cliente puede utilizar durante la comunicación MQTT con el broker. Esto permite al corredor informar al cliente sobre el número máximo de alias de tema que puede uso.

Los alias temáticos son referencias cortas a temas que ayudan a reducir el tamaño de los paquetes de control MQTT reemplazando el nombre del tema por un identificador más corto (alias).

Puede configurar Maximum Topic Alias en broker.conf.

#Default: 0

SERVER_TOPIC_ALIAS_MAXIMUM = 99

Un valor de 0 indica que el corredor no apoya los alias tópicos, y el cliente no debe utilizar el tema alias en sus mensajes.

Mantener el servidor activo

El"Server Keep Vivosmecanismo se refiere a una característica que permite al corredor MQTT (servidor) notificar a los clientes aproximadamente el intervalo de tiempo máximo permitido para mantener una conexión activa.

Durante la fase de establecimiento de conexión (envase CONNACK), el MQTT broker informa al cliente sobre el intervalo "Server Keep Alive". El intervalo "Server Keep Alive" especifica el máximo duración del tiempo (en segundos) que el cliente puede permanecer ocioso sin enviar paquetes de control (por ejemplo, PINGREQ) al corredor.

Puedes definir esto en mqtt. conf

SERVER_KEEP_ALIVE = 90

#Si se establece a (-1) valor del paquete CONNECT se utiliza para cada cliente

Si especifica el mantener vivo aquí, el cliente utilizará este valor en lugar del valor de mantenimiento proporcionado en su paquete CONNECT.

Sin embargo, si el valor se fija en -1, lo que significa que el corredor no enviar la propiedad Server Keep Alive, y el corredor utilizará el valor de reserva establecido por el cliente en su paquete CONNECT.

Retain Available

La característica "Retener disponible" se refiere a la capacidad de un MQTT broker to supportmensajes retenidos. Los mensajes retenidos son mensajes especiales de MQTT que se almacenan en el bróker y entregado a nuevos suscriptores cuando se suscriben a un tema.

Puede activar / desactivar Retener en mqtt.conf

#Default:1

RETAIN_AVAILABLE = 1

# 0 Silencioso 1

Un valor de 0 significa que los mensajes retenidos están deshabilitados. Se habilita un valor de 1 medio de mensajes retenidos.

Suscripción de la tarjeta salvaje Disponible

Una suscripción a wildcard se refiere a un patrón de suscripción que permite clientes para suscribirse múltiples temas usando caracteres comodín (+, #).

Usted tiene la opción de configurar el MQTT Broker para activar o deshabilitar la función comodín basado en sus requisitos.

#Default:1

WILDCARD_SUBSCRIPTION_AVAILABLE = 1

# 0 Silencioso 1

Un valor de 0 significa que la suscripción de tarjetas silvestres está deshabilitada. Un valor de 1 significa que la suscripción de tarjetas silvestres está habilitada.

Identificadores de suscripción Disponible

Los identificadores de suscripción son una característica que permite a los clientes de MQTT c) identificadores a sus suscripciones. Los identificadores de suscripción se utilizan para identificar de forma única las suscripciones individuales hecho porMQTT clientesa temas específicos. Cada suscripción se puede asignar un identificador único.

#Default:1

SUBSCRIPTION_IDENTIFIERS_AVAILABLE = 1

# 0 Silencioso 1

Un valor de 0 significa que los identificadores de suscripción están deshabilitados. Un valor de 1 significa que los identificadores de suscripción están habilitados.

MQTT Suscripción compartida

Nuestro broker, por defecto, admite suscripciones compartidas, permitiendo datos a se distribuye entre dispositivos suscritos. Cuando un editor envía datos a un tema, se comparte entre todos los suscritos clientes. Por ejemplo, si dos clientes están suscritos a 'Tema 1', el corredor alternará enviar mensajes entre ellos.

Las suscripciones compartidas siguen el formato siguiente

$shared/subscriptionname/topic

Puede activar / desactivar lo mismo en mqtt. conf

#Default:1

SHARED_SUBSCRIPTION_AVAILABLE = 1

# 0 Silencioso 1

Nota:Tenga en cuenta que mientras que función de suscripción compartida dentro de los nodos en un entorno agrupado, no se extienden a través de todo el grupo.

Interfaz de usuario MQTT Broker " Dashboard

Nuestro broker UI le permite monitorear, visualizar y gestionar su conexión dispositivos " datos. Esta sección ofrece una visión profunda sobre cómo acceder al dashboard y visualizar los datos de MQTT de una manera que necesite.

Acceso a la UI / Dashboard

Por defecto, la interfaz de usuario del corredor comienza a funcionar en el puerto 8080. Usted puede acceder a él navegando al navegador y entrando

http://localhost:8080

O

:8080
Configuración UI

Este puerto UI se puede cambiar actualizando UI_HTTP_PORT dentro conf/application.conf

Configuración de interfaz de usuario [UI]

UI_HTTP_PORT =8080
  • Reinicie el corredor una vez
  • Ahora puede comenzar a acceder a su interfaz de usuario en el puerto definido.
Nota:El cambio de puerto de la UI puede ser necesario en escenarios donde el puerto 8080 está ocupado por otros aplicación que se ejecuta en su sistema. Si usted no está consciente de alguna otra aplicación corriendo, Tendrás [Error 98] mientras ejecutas MQTT Broker.
Sinopsis

Esta página contiene información de conexión del Broker. El cifrado TLS puede ser habilitado o desactivado desde esta página.

Overview

API Token para accederMQTT Broker REST APIse puede generar en esta página.

Dashboard

El panel proporciona una instantánea rápida de los últimos acontecimientos en el Broker, donde puedes ver los datos de tiempo real procedentes de sus dispositivos. Junto con datos brutos, usted puede esperar el estado de tiempo real rápido del corredor.

dashboard

  • Dispositivos activos – Dispositivos que actualmente están activos
  • Dispositivos totales – Número total de dispositivos conectados hasta ahora al corredor
  • Eventos – Número total de mensajes / datos publicados
  • Comandos - Número total de mensajes / datos recibidos
  • Eventos recientes – La visión en tiempo real de los datos recientes publicados.
  • Registro de dispositivos recientes – La vista reciente sobre el error ocurrió al conectar dispositivos.
  • Conexións recientes – La lista reciente de dispositivos conectados
  • Desconexiones recientes – La lista reciente de dispositivos desconectados

Además del panel predeterminado, MQTT Broker admite personalizado que permite a los usuarios crear múltiples paneles específicos para sus aplicaciones. Déjanos profundizar para saber cómo puede ayudar a su aplicación.

Dashboard personalizado

El uso de dashboards varía con la aplicación de caso de uso y él no es justo proporcionar estática dashboards para todas las implementaciones IoT. Por lo tanto, nuestro sistema de corretaje soporta tableros personalizados con conjunto de widgets preconstruidos a ayuda a los usuarios a tener mejor visualización específico a su aplicación o necesidades industriales.

A diferencia de otros MQTT Broker / servidores que no necesita ningún tercero plugin para visualizar sus datos. Puede crear varios paneles con esta funcionalidad de la propia UI. Ponga los widgets en el panel de control y proporcione una visualización de valor añadido a su datos.

Lista de widgets compatibles :

  • Texto
  • Color
  • Gráfico de línea
  • Bar Chart
  • Gauge Chart
  • Gauge vertical
  • Gauge horizontal
  • LED Luz
  • Cambio
¿Cómo crear paneles personalizados?

Para crear un panel personalizado:

  • Haga clic en '+' en el menú Dashboard, seleccione "New Dashboard" e ingrese el nombre del panel y descripción.
  • Después de completar, haga clic en el botón "Crear" para abrir la pestaña "Widgets".
  • Luego haga clic en el icono "+" en la esquina superior derecha de la pestaña widgets. 'Add Widget' ventana Lo haré. aparecen junto con el menú desplegable que enumera los tipos de widgets.
custom dashboard

Para crear un Widget :

Widgets admiten datos JSON y TEXT. Asegúrese de crear widget sólo para datos numéricos.

widget

Los pasos para hacer 9 tipos diferentes de widgets se enumeran a continuación.

1. Texto Widget
  • Seleccione el widget "Text" si desea mostrar datos en forma de texto simple. Esto le ayuda a resaltar los valores de parámetros específicos en los datos.
text widget

  • Ahora proporcione un título y seleccione un dispositivo de la lista de dispositivos.
  • El menú desplegable listará a todos los clientes (tanto activos como inactivos) conectados con el plataforma.
  • Seleccione el dispositivo activo (su dispositivo preferido) de la lista para ver los datos fluir en tiempo real.
  • Ahora tiene que introducir un tema con el que se asocia el dispositivo seleccionado.
  • Si usted tiene varios temas para un dispositivo en particular, todos los temas serán listados en el menú desplegable.

Haga clic para saber más sobreTemas MQTT.

  • Entonces tienes que seleccionar una llave. La clave se refiere a los parámetros que sus datos JSON tienen.

Por ejemplo – la sintaxis JSON será como
{ “KEY 1” : “ VALUE1 ” , “KEY2” : “ VALUE2”, “KEY 3” : “VALUE 3”

Ejemplo de datos JSON
{ “sensor” :”99′′ , “temperatura” : “90” , “status” : on” }

En los datos anteriores, se denomina sensor, temperatura, estado claves y 99, 90 y ON son valores para las teclas.

Por ejemplo, si quiero mostrar datos de temperatura, tengo que seleccionar la clave como “temperatura”. Entonces tengo que entrar en la unidad para los datos. Como he seleccionado la temperatura como la clave, He dado a Celsius como unidad. Puede ingresar la unidad adecuada en función de sus datos.

  • La selección de colores le permitirá seleccionar el color para todo el widget.
  • Luego Mínimo y Máximo se refieren a la gama de sus datos. Si sé que mis datos serán reside en el rango 0 a 100 o 40 a 80 etc., Puedo mencionar aquí.
  • Finalmente offset, es una columna opcional. El efecto de este parámetro variará según en el widget.
  • Por ejemplo, en el caso del widget de texto, si la temperatura es normal o baja, necesito muestra eso como un texto color GREEN. Del mismo modo, si es muy alto, necesito mostrar que como texto de color RED muestra un ¡Alerta! Así es como la compensación ayuda en el texto widget. Así que puedo introducir el valor de baja temperatura como offset en la primera columna y voluntad darle color verde. Y entonces en la siguiente columna, entraré a la alta temperatura como offset y daré color RED.
  • Ahora, las entradas se dan y se puede ver el widget de texto en enviar.
text widget
2. Widget de color

El widget de color le ayuda a ver los datos en una forma de color. Además, puedes establecer diferentes colores para cada rango óptimo de valores.

Los pasos son los mismos que los de crear un widget TEXT.

add color widget

  • Después de proporcionar los detalles del dispositivo, tema " selección de teclas " mínimo " rango máximo, usted puede entrar en los valores de compensación.
  • El uso de offset variará aquí ya que puede hacer que su MENSAJE deseado se muestre con color de fondo seleccionado.
  • Por ejemplo, mi dispositivo está publicando los datos de velocidad y el rango de velocidad es entre 0 a 200. Quiero recibir alerta instantánea basada en la velocidad en tres formatos diferentes como Normal, Mediana & Alta velocidad en panel de control en formato coloreado.

Que 0 a 50 sean velocidad normal, 50 a 100 sean velocidad media y más que 100 ser alta velocidad. Ahora revise los pasos a continuación.

  • Ingrese el primer valor offset como 50 e ingrese el subtítulo como 'Normal' (como quiero) Mostrar el texto en un widget). Luego puede seleccionar el color preferido (Background) se muestra.
  • Ingrese el segundo valor offset como 100 e ingrese el subtítulo como ‘Medium’ (como quiero) Mostrar el texto en un widget). Luego puede seleccionar el color preferido (Background) se muestra.
  • Ingrese el tercer valor offset como 100 e ingrese el subtítulo como "Alerta Espectacular" (como quiero) para mostrar el texto en un widget). Luego puede seleccionar el color preferido (Background) para ser exhibido.
  • Ahora usted será alertado con la velocidad de su color preferido
color widget
3. Línea Widget

Línea Widget le permite crear tendencia que es para ver datos que cambia con el tiempo. Esto le ayuda a crear una serie de valores conectados con una línea recta. También puede comparar cambios durante el mismo período por más de un valor.

Los pasos son los mismos que los de crear un widget TEXT & Color. Pero no habrá ninguna opción para establecer un rango mínimo y máximo " offset ya que esta es una tendencia Gráfico.

add line chart

  • Seleccione Tabla de línea de la lista de widgets.
  • Elija qué tipo de datos prefiere: Vida o histórico
  • A continuación, proporcionar un título y seleccionar un dispositivo de la lista de dispositivos.
  • El menú desplegable listará a todos los clientes (tanto activos como inactivos) conectados con el plataforma.
  • Seleccione el dispositivo activo (su dispositivo preferido) de la lista para ver los datos fluir en tiempo real.
  • Ahora tiene que introducir un tema con el que se asocia el dispositivo seleccionado.
  • Si usted tiene varios temas para un dispositivo en particular, todos los temas serán listados en el menú desplegable.
  • Entonces usted tiene que seleccionar una llave y proporcionar una unidad de subtítulo adecuado para la llave.
line chart

Como es un gráfico de tendencia, muestra datos con el tiempo. Por lo tanto es un gráfico de sus datos vs tiempo. Los datos (valor) ocuparán el eje y y y el tiempo ocupará el eje x. El subtítulo " unidad que proporcione se mostrará en eje y.

  • Ahora puede proporcionar su color preferido para la línea que conecta sus datos.
  • Haga clic en enviar y se creará su gráfico de línea.

Nota:Cuando se elija Datos históricos, puede exportar los datos para su período preferible de días.

Para comparar dos o más valores :

Comparando dos o más valores (datos) de un solo dispositivo se puede hacer con widget de línea.

Siga los pasos a continuación para crear un gráfico de comparación de datos.

  • Utilice los pasos necesarios para crear el widget de línea como se mencionó.
  • Antes de enviar los detalles, haga clic en + icono cerca de la barra de selección de colores de la primera tecla.
  • Ahora siga introduciendo otra clave en un dato, subtítulo, unidad y color.
  • Puede añadir más claves basadas en cuántas teclas tiene los datos del dispositivo seleccionado.
  • Ahora haga clic en enviar y puede ver el gráfico de comparación de datos.
4. Bar Widget

El uso de bar widget es el mismo que el de línea widget y él representa datos en barras rectangulares con alturas proporcionales a los valores que representan.

add bar chart

  • Seleccione el gráfico Bar de la lista de widgets.
  • Elija qué tipo de datos prefiere obtener : Vida o histórico
  • A continuación, proporcionar un título y seleccionar un dispositivo de la lista de dispositivos.
  • El menú desplegable listará a todos los clientes (tanto activos como inactivos) conectados con el plataforma.
  • Seleccione el dispositivo activo (su dispositivo preferido) de la lista para ver los datos fluir en tiempo real.
  • Ahora tiene que introducir un tema con el que se asocia el dispositivo seleccionado.
  • Si usted tiene varios temas para un dispositivo en particular, todos los temas serán listados en el menú desplegable.
  • Entonces usted tiene que seleccionar una llave y proporcionar una unidad de subtítulo adecuado para la llave.

Como es un gráfico de tendencia, muestra datos con el tiempo. Por lo tanto es un gráfico de sus datos vs tiempo, los datos (valor) ocuparán el eje y y y el tiempo ocupará el eje x. El subtítulo " unidad que proporcione se mostrará en eje y.

  • Ahora usted puede proporcionar su color preferido para la barra que representa la clave.
  • Haga clic en enviar y su gráfico de barras se creará.
bar chart

Nota:Al elegir datos históricos, puede exportar datos para su período preferible de días.

Para comparar dos o más valores :

Comparando dos o más valores (datos) de un solo dispositivo se puede hacer con bar widget.

Siga los pasos a continuación para crear un gráfico de comparación de datos.

  • Utilice los pasos necesarios para crear widget de barra como se mencionó.
  • Antes de enviar los detalles, haga clic en + icono cerca de la barra de selección de colores de la primera llave.
  • Ahora siga introduciendo otra clave en un dato, subtítulo, unidad y color.
  • Puede añadir más claves basadas en cuántas teclas tiene los datos del dispositivo seleccionado.
  • Ahora haga clic en enviar y puede ver el gráfico de comparación de datos.
5. Gauge Widget

Un gráfico medidor que ilustra visualmente un velocímetro se utiliza para representan valores progresivos.

Los pasos son los mismos que los del widget TEXT > COLOR.

add gauge

  • Después de proporcionar los detalles del dispositivo, tema " selección de teclas " mínimo " rango máximo, usted puede entrar en los valores de compensación.
  • El valor mínimo & máximo aquí representa el punto de partida y final en un dial.
  • El uso de offset variará aquí ya que cada compensación representa el rango de datos en un dial que finalmente es apuntado por una aguja. Puede seleccionar diferentes colores para diferentes offsets.

Consideremos un medidor de presión y los datos sobre caídas de presión entre el rango 0 a 100. Ahora puedo dividir el dial en 5 rangos diferentes.

  • 0 a 20
  • 20 a 40
  • 40 a 60
  • 60 a 80
  • 80 a 100

Cada categoría representa cada compensación y asignaré diferentes colores para el mismo. La aguja girará sobre " señala el valor de presión basado en el datos recibidos en línea.

gauge chart
6. Gauge vertical & Horizontal Gauge

El uso de medidor vertical y horizontal es el mismo que el de Gauge pero utilizado para representar valores progresivos lineales.

Los pasos para la creación de widget son exactamente los mismos pero usted va a tienen la escala lineal (horizontal o vertical) en lugar de dial. Puede configurar el offset en esto.

vertical gauge


horizontal gauge

Para el procedimiento paso a paso, consulte el widget Gauge.

7. LED Widget

Es un widget basado en condiciones que funciona para datos aleatorios. Puede ser utilizado en un escenario para comprobar el estado del dispositivo ya sea activo o inactivo.

Siga los pasos de abajo para crear un widget LED.

  • Seleccione LED de la lista de widgets.
  • Elija qué tipo de datos desea: Vida o histórico
  • A continuación, proporcionar un título y seleccionar un dispositivo de la lista de dispositivos.
  • El menú desplegable listará a todos los clientes (tanto activos como inactivos) conectados con el plataforma.
  • Seleccione el dispositivo activo (su dispositivo preferido) de la lista para ver los datos fluir en tiempo real.
  • Ahora tiene que introducir un tema con el que se asocia el dispositivo seleccionado.
  • Si usted tiene varios temas para un dispositivo en particular, todos los temas serán listados en el menú desplegable.
  • Entonces tienes que seleccionar una llave.
add led light

Nota:Al elegir datos históricos, puede exportar datos para su período preferible de días.

Nota:LED funciona sólo para el dispositivo que envía datos en RANDOM. Por ejemplo, SobrevivirOff o Open VidaClose

Ahora proporciona el valor (ON) que recibe cuando su dispositivo está activo y (OFF) cuando el dispositivo es inactivo en el espacio respectivo dado. Elige tu color deseado. Basado en el color elegido, el LED parpadeará representando el estado del dispositivo.

led light

8. Interruptor Widget

Este es un widget interactivo de usuario donde puedes controlar el actividad de dispositivo de la propia UI.

Usted puede elegir qué tipo de datos desea obtener : Vivir o vivir Histórico. Basado en el tema/evento recibido por dispositivo, puede hacer su dispositivo ON/OFF o la acción que necesita para realizar con los datos suscritos.

add switch widget

Puede conectar manualmente el dispositivo con el widget del interruptor.

Nota:Al elegir datos históricos, puede exportar datos para su período preferible de días.

Nota:Asegúrese de que el dispositivo que desea controlar está suscrito al tema que tiene datos aleatorios (ON / OFF o Open / Close).

switch widget
Clientes

Este menú muestra la lista completa de dispositivos (tanto activos como inactivo) que están conectados aMQTT Broker. Esto le proporciona una vista de alto nivel en cada dispositivo conectado.

clients

Déjanos profundizar para saber cómo esto puede ayudar.

Dashboard puede proporcionar los últimos eventos rápidos de dispositivos. Pero cómo puede obtenemos la lista completa de eventos publicados y los comandos recibidos si es un suscriptor?

¿Cómo puedo enviar un comando instantáneo a los dispositivos?

Todas estas preguntas pueden ser contestadas si usted puede hacer el uso óptimo de Menú de clientes.

  • Ir a los clientes
  • Haga clic en cualquier cliente
Eventos

La lista completa de eventos publicados por el dispositivo seleccionado. También puede obtener la lista de mensajes publicados junto con sus temas asociados por el seleccionado Dispositivo.

  • Nivel QoS de cada tema publicado. Lea nuestro blog para saber más sobre Calidad de Servicio (QoS) nivel.
  • El momento en que se publicó el mensaje.
events

Comandos

La lista completa de comandos suscritos por el dispositivo seleccionado. Tú. también puede conseguir,

  • La lista de mensajes recibidos junto con sus temas asociados por el dispositivo seleccionado.
  • Nivel QoS de cada tema suscrito.
  • The time at which the message was received by the received.
commands

Temas de suscripción

Esta es una lista de filtros de tema suscritos por el cliente en particular.

topics

Mando

“Enviar comando” le ayuda a enviar mensajes instantáneos al cliente.

active subscriptions

Siga los pasos para enviar una orden instantánea:

  • Seleccione el nombre del tema desde el menú desplegable.
  • Asegúrese de que el tema está suscrito por el dispositivo al que está enviando el comando.
  • Introduzca el comando para ser enviado en la ficha del mensaje.
Temas

La lista absoluta de temas publicados y suscritos por todos los dispositivos conectado al corredor.

Registro de dispositivos

La conexión del dispositivo con el corredor puede ser restringido/interrumpido por tantas razones. La pestaña Iniciar sesión contiene una lista de errores que ocurrió mientras conecta un dispositivo con el corredor. Esto te ayuda a conocer la razón detrás de fracaso.

La siguiente lista le ayuda a identificar la razón del error.

ERROR REASON
Servidor ocupado Servidor ocupado, número de conexión de toma excedido límite físico del servidor alcanzado
Cliente desconocido Los detalles del cliente no se dan correctamente. Datos del cliente inválido proporcionados
Cliente id Null Cliente id Null, entrada de conexión restringido Identificador de cliente es NULL
Conexión Refusa Mismo cliente id ya encontrado, tratar de conectar con otro cliente id Reutilizando un existentes Identificador de cliente no permitido
Credencial inválida Nombre de usuario o contraseña incorrecta. Conéctese con la credencial correcta del usuario. Inválidos Detalles de autenticación proporcionados
Ping Response Failed El dispositivo salió fuera de línea. TCP El tiempo ocurrió.
SSL Accept Error al establecer una conexión segura. Certificado SSL inválido o Conexión
Protocolo no respaldado Protocolo inválido. El mensaje recibido no está en el formato MQTT adecuado
Socket cerrado El servidor está ocupado
Dispositivo desconectado Inesperadamente Dispositivo desconectado
Rule Engine

Las reglas son el primer paso para construir inteligencia al corredor. Es un motor de automatización donde puede crear alertas basadas en el mensaje recibido.

El motor de reglas consta de reglas basadas en condiciones " Time based.

Creación de reglas basadas en condiciones:

  • Tema del cliente – Creación de reglas basadas en el tema del cliente
  • Tema > Mensaje – Basado en Tema > Mensaje
  • Tema del cliente > Mensaje – Basado en el nombre del cliente, tema & mensaje
rules type

Cliente " Tema

Este tipo de regla le permite crear reglas basadas en el cliente " el tema que está asociado.

Consideremos el escenario. Mi editor publica los datos con el tema, pub/test en 2 minutos intervalo. Y quiero a mi suscriptor con el tema sub/test suscrito para saber que el editor está publicando los datos o no.

Así que puedo crear una regla que cada vez que el Editor envía datos, suscriptor recibirá el mensaje ‘Message Sent’.

Nota: Esto es sólo un escenario de ejemplo, usted puede crear su propio regla basada en tu necesidad.

Pasos para crear el tipo de regla del cliente & Tema :

  • Ir a la pestaña Reglas > clic + icono presente en la esquina superior derecha.
  • El cuadro de diálogo se mostrará para generar reglas.
  • Ahora seleccione 'Client ' Topic' en el tipo Regla.
  • Proporcione el ID del cliente de su editor " Tema con el que está asociado el editor.
client topic rule

Si tiene varios temas, seleccione el tema para el cual usted es pretendía generar una regla.

Ahora introduce el tema que está a punto de recibir el mensaje aleatorio (sin configurar en reglas)

Nota : El dispositivo que se suscriba a este tema recibirá el mensaje configurado.

Introduzca el mensaje a enviar " haga clic en enviar.

Alternativamente, si desea enviar el mensaje como es de el editor, haga clic en "para adelante". Esto transmitirá los mensajes publicados como son para los suscriptor.

Tema & Mensaje

Este tipo de regla le permite enviar una respuesta basada en el mensaje recibido y se asocia sólo con el tema " no con el dispositivo. (i.e) Puede crear reglas específicas para cualquier tema de publicación " no se limita al dispositivo asociado con.

Este tipo de regla será útil para el escenario mencionado más abajo.

Consideremos que mi sensor de temperatura está publicando la temperatura datos en un rango de 0 a 50 y si alcanza el valor óptimo de 50, tengo que enviar un mensaje de alerta al suscriptor. Así que con el tema " tipo de regla del mensaje, Puedo establecer la condición de que, si los datos recibidos son = 50, entonces envía un mensaje de alerta ‘Temperatura alta’.

Nota:Esto es sólo un escenario de ejemplo, usted puede crear su propia regla basada en su necesidad.

  • Ir a la pestaña Reglas > clic + icono presente en la esquina superior derecha.
  • El cuadro de diálogo se mostrará para generar reglas.
  • Ahora seleccione 'Tema > Mensaje' en el tipo Regla.
  • Proporcione Tema su tema de publicación preferido.
  • Seleccione la condición (=, iere, indica) e introduzca el valor. (Si la afección es = 50 entonces, puede seleccionar la afección como = e introducir la valor como 50).
topic message rule

Ahora introduce el tema que está a punto de recibir el mensaje aleatorio (sin configurar en reglas)

Nota:El dispositivo que se suscriba a este tema recibirá el mensaje configurado cuando el el estado establecido está satisfecho.

Introduzca el mensaje a enviar " haga clic en enviar.

Alternativamente, Si desea enviar el mensaje como es de el editor, haga clic en "para adelante". Esto transmitirá los mensajes publicados como son para el suscriptor en satisfacer el estado establecido.

Cliente-Topic-Message

Este tipo de regla le permite enviar una respuesta basada en el mensaje recibido y asociado con ambos temas " mensaje (es decir) Puedes crear regla específico a cualquier tema de publicación que esté asociado con el dispositivo particular.

Los pasos son los mismos que los del tipo de regla Cliente-Tema-Mensaje.

  • Ir a la pestaña Reglas > clic + icono presente en la esquina superior derecha.
  • El cuadro de diálogo se mostrará para generar regla.
  • Ahora seleccione 'Client-Topic-Message' en el tipo Regla.
  • Proporcione el ID del cliente de su editor " Tema con el que está asociado el editor. (Si tiene varios temas, seleccione el tema para el cual usted está destinado a generar un regla.)
  • Seleccione la condición (=, iere, indica) e introduzca el valor. (Si la condición es > 40 entonces, usted puede seleccionar el condición como > e introducir el valor como 40)
  • Ahora ingrese el tema que está a punto de recibir el mensaje aleatorio (sin configurar en reglas)
client topic message

Nota:El dispositivo que se suscriba a este tema recibirá el mensaje configurado cuando el el estado establecido está satisfecho.

Introduzca el mensaje a enviar " haga clic en enviar.

Alternativamente, si desea enviar el mensaje como es de el editor, haga clic en "para adelante". Esto transmitirá los mensajes publicados como son para el suscriptor en satisfacer el estado establecido.

Creación de reglas basada en Timer

Timer Rule – Creación de reglas basada en la fecha y hora dadas.

Regla del temporizador ayuda a programar la regla para ejecutarla en una la fecha preferida. (i.e) Puede enviar una alerta para la fecha especificada.

  • Seleccione 'Timer' en tipo de regla.
  • Proveer el ID del cliente del editor.
  • Luego ingrese el tema, que está suscrito por el dispositivo especificado anteriormente, al cual usted están a punto de enviar la alerta.
  • Introduzca el mensaje que se enviará.
  • Luego se puede programar la alerta para:
    • Fecha específica
    • Rango de fecha
    • Día de la semana
  • Seleccione su favorito y haga clic en crear.
timer rule

Una vez hecho, el suscriptor recibirá la alerta cliente para la fecha mencionada.

rules
Seguridad

AsegurarseSeguridad MQTTes vital para proteger datos sensibles y mantener la integridad de los sistemas de mensajería. Por abordar los aspectos clave de la seguridad del MQTT, las organizaciones pueden establecer una seguridad sólida posture for MQTT-based deployments, protect sensitive data, prevenir el acceso no autorizado y mantener la integridad y confidencialidad del MQTT comunicaciones.

Aquí hay tres niveles de seguridad empleados en Bevywise MQTT Broker:

Autenticación del dispositivo-Level

La autenticación a nivel de dispositivo implica validar la identidad de los dispositivos conectarse al corredor MQTT. Esto es crucial para prevenir dispositivos no autorizados desde el acceso al corredor y garantiza que sólo los dispositivos de confianza pueden publicar y suscribirse Temas.

Esto le permite conectar sus dispositivos con mayor seguridad credenciales de autenticación. Esto requiere que usted active el campo de autenticación en mqtt. archivo conf presente en la carpeta conf.

Activar autenticación :

  • Ir a ./CrystalMQ/conf (Path puede variar)
  • Abra mqtt.conf
  • Usted puede encontrar AUTHENTICATION_ENABLED campo está listo para DISABLED. Cámbialo a DEFAULT.
mqtt.conf

[DEVICE_AUTHENTICATION]
AUTORICACIÓN = DEFAULT
DEFAUT TENIDO DISABLED TENIDO CUSTOM

Guardar el archivo " reiniciar el broker.

Ahora ve a la UI de MQTT Broker. Usted encontrará el Menú 'Seguridad' mostrado. Puede crear sus credenciales de autenticación para una conexión segura del dispositivo.

security

Crear autenticación Credenciales :

Añadir MQTT Usuario (Access Key) y Contraseña (Access Token) que puede ser utilizado por ClientIds específicos. 'Clients' - se puede modificar a un solo ClienteId, o una lista de coma separados Cliente Ids (las tarjetas son compatibles). '* significa que los clientes con cualquier cliente Puede conectarse.

add auth

Estas credenciales también se pueden eliminar.

MQTT Nombre de usuario (Access Token) puede ser almacenado plana o como un digestivo en la base. Ajuste SECURE_MQTT_PASSWORD = TRUE en conf/datastore. Conf se almacenará MQTT Contraseñas como un digesto y no se mostrará en la UI.

datastore.conf

SECURE_MQTT_PASSWORD = TRUE
♪ VERDADERO TENIDO FALSE

Guardar el archivo " reiniciar el broker.

Tenga en cuenta que cambiar esta configuración requiere soltar el base de datos existente.

Listas de control de acceso (LCA)

ACLs se utilizan para definir permisos granulares y controlar qué dispositivos o clientes pueden realizar acciones específicas (por ejemplo, publicar, suscribir)Temas del MQTT. Este nivel de La seguridad ayuda a aplicar políticas de control de acceso bien arraigadas dentro del corredor MQTT.

Con ACL habilitado, puede especificar qué temas se permiten los dispositivos a publicar o suscribirse, así como qué temas se restringen de acceder.

Activar ACL

Para habilitar ACL, vaya al archivo 'mqtt.conf' en la carpeta 'conf'. Entonces ponte como sigue: TOPIC_ACL = TRUE. Guarda el archivo y reinicia el broker.

# Esto permite al Cliente Lista de control de acceso basado en nombres de usuario a temas

# Si TRUE, todos los temas están permitidos por defecto, a menos que los temas sean concedidos/denegados acceso basado en cliente Id o nombre de usuario.

TOPIC_ACL = TRUE

♪ VERDADERO TENIDO FALSE

MQTT Nombre de usuario ACL

Activar la autenticación del dispositivo para utilizar MQTT Nombre de usuario basado en ACL.

Navegue al menú 'Security'

En la sección Lista de control de acceso, seleccione el nombre de usuario de MQTT

acl username

En la creación de MQTT Usuario/Password, los ajustes predeterminados de ACL son generado automáticamente que permite PUBLISH/SUBSCRIBE de todos los Temas. Esto se puede editar haciendo clic en 'Editar' en el nombre de usuario de MQTT.

Comma lista separada de Temas se puede configurar para ser permitido/denido para Publicar y Suscripción de cualquier Cliente conectar con este nombre de usuario MQTT. Tanto el Publish como el Subscribir Temas aceptar MQTT-like filtros.

(por ejemplo, habitación/+/temperatura)

Cliente basado en ACL

También puede establecer ACL basado en el ClientId. ACL se puede añadir sólo a clientes ya conectados.

En el menú de seguridad, bajo la sección Lista de control de acceso, seleccione 'Clients' y añadir ACL para un cliente conectado.

add acl for client


acl clients
Cifrado TLS / SSL

Seguridad de la Capa de Transporte (TLS) o Cifrado de Sockets Seguro (SSL) añade una capa de seguridad por encriptando comunicaciones MQTT entre clientes y el corredor. Esto evita el escucha, manipulación o acceso no autorizado a los mensajes MQTT durante transmisión.

Activar TLS / SSL

Para habilitar TLS, establece TLS_ENCRYPTION = TRUE en conf/mqtt.conf :

TLS_ENCRYPTION = TRUE

[TLS]

# Usado sólo cuando TLS_ENCRYPTION = TRUE

TLS_PORT = 8883

TLS_PORT debe ser 88xx.

WSS_PORT = 11443

# Secure Websocket port of the Broker

SERVER_CERTIFICATE = ././Certificate/server/server.crt

SERVER_KEY = ./././Certificate/server/server.key

CA_CERTIFICATE = ././Certificate/root/root.crt

Como TLS está habilitado, el corredor comenzará a funcionar en el puerto 8883 en su lugar de 1883.

Nota:WSS_PORT_NO es iniciar la versión SSL MQTT en Websocket.

Por defecto, MQTTRoute viene con Auto-Firmado Certificado para Servidor. Usted puede encontrar los certificados dentroCrystalMQ/Certificate

SERVER_CERTIFICATE = ././Certificate/server/server.crt

SERVER_KEY = ./././Certificate/server/server.key

CA_CERTIFICATE = ././Certificate/root/root.crt

El certificado de arranque (root.crt) debe ser subido en el dispositivo / cliente para que el cliente pueda verifique que el certificado del servidor (server.crt) fue firmado por su certificado de raíz de confianza.

Si necesita crear su propio certificado auto-firmado, consulte a continuación.

Creación de certificados auto-firmados - Linux

Generar la clave de firma de la Autoridad de Certificados

$ opensl genrsa -des3 -out ca.key 2048

Introduzca la frase de paso para la clave y guardarla.

Resultado:

Generación de llave privada RSA, 2048 bit de largo módulo (2 primos)

...+++++

.++++

e is 65537 (0x010001)

Introduzca la frase de paso para ca.key:

Verificación - Introduzca la frase para ca.key:

Generar una solicitud de firma de certificados para la CA

$ opensl req -new -key ca.key -out ca-cert-request.csr -sha256

Introduzca cualquier nombre de organización (Eg. Bevywise) y deje a otros vacío.

Resultado:

Introduzca la frase de paso para ca.key:

Se le pedirá que introduzca información que será incorporada

en su solicitud de certificado.

Lo que estás a punto de entrar es lo que se llama Nombre Distinguido o DN.

Hay bastantes campos pero puedes dejar algo en blanco

Para algunos campos habrá un valor predeterminado,

Si entras, el campo quedará en blanco.

---

Nombre del país (2 código de carta) [AU]:

Nombre del Estado o provincia (nombre completo) [algunos Estados]:

Localidad Nombre (por ejemplo, ciudad) []:

Nombre de organización (por ejemplo, empresa) [Internet Widgits Pty Ltd]:Bevywise

Nombre de la Dependencia de Organización (por ejemplo, sección) []:

Nombre común (por ejemplo, servidor FQDN o SU nombre) []:

Correo electrónico []:

Por favor introduzca los siguientes atributos 'extra'

para ser enviado con su solicitud de certificado

Una contraseña de desafío []:

Un nombre de empresa opcional []:

Crear el certificado raíz de CA

$ opensl x509 -req -in ca-cert-request.csr -signkey ca.key -out ca-root.crt -days 365 -sha256

Resultado:

Firma bien

asunto=C = UA, ST = Some-State, O = Bevywise

Obtener clave privada

Introduzca la frase de paso para ca.key:

Crear el servidor / par de llaves de MQTT Broker

$ opensl genrsa -out server. clave 2048

Resultado:

Generación de llave privada RSA, 2048 bit de largo módulo (2 primos)

..............................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.......................................................................................................................................................................................................................................................................................

..........................................++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..........................................................................................

e is 65537 (0x010001)

Crear una solicitud de firma de certificados

Esto se puede hacer utilizando la tecla servidor (server.key) para enviar a la autoridad certificadora para la verificación de identidad

$ opensl req -nueva - servidor clave. llave -out servidor-cert-request.csr -sha256

Proporcionar cualquier nombre de organización (por ejemplo, Bevywise Inc) y entrar en el común nombre. Nombre del usuario (por ejemplo: tempmyaccount.mqtserver.com) debe ser el nombre de dominio de su servidor en que el MQTT Broker está corriendo.

O introduzca localhost si MQTT Broker está operando en una máquina local.

Resultado:

Se le pedirá que introduzca información que será incorporada

en su solicitud de certificado.

Lo que estás a punto de entrar es lo que se llama Nombre Distinguido o DN.

Hay bastantes campos pero puedes dejar algo en blanco

Para algunos campos habrá un valor predeterminado,

Si entras, el campo quedará en blanco.

---

Nombre del país (2 código de carta) [AU]:

Nombre del Estado o provincia (nombre completo) [algunos Estados]:

Localidad Nombre (por ejemplo, ciudad) []:

Nombre de organización (por ejemplo, empresa) [Internet Widgits Pty Ltd]:Bevywise Inc

Nombre de la Dependencia de Organización (por ejemplo, sección) []:

Nombre común (por ejemplo, servidor FQDN o SU nombre) []:tempmyaccount.mqtserver.com

Correo electrónico []:

Por favor introduzca los siguientes atributos 'extra'

para ser enviado con su solicitud de certificado

Una contraseña de desafío []:

Un nombre de empresa opcional []:

Crear y firmar el certificado del servidor

Este paso es crear un nuevo certificado de servidor y firmarlo con la potencia de la Autoridad de Certificados.

$ opensl x509 -req -in server-cert-request.csr -CA ca-root.crt -CAkey ca.key -CAcreateserial -out server.crt -days 360

Resultado:

Firma bien

subject=C = AU, ST = Some-State, O = Bevywise Inc, CN = tempmyaccount.mqtserver.com

Obtener CA Clave privada

Introduzca la frase de paso para ca.key:

Ahora tienes los siguientes certificados y la llave en mano.

  • ca-root.crt (renombrarlo a root.crt)
  • server.crt
  • servidor.key

Ahora, servidor.crt y servidor. clave debe ser subido en el servidor ../MQTTRoute/Certificate/servidor, y root.crt debe ser proporcionado en el cliente para que el cliente puede verifique que el certificado del servidor (server.crt) fue firmado por su certificado de raíz de confianza.

root.crt - .../MQTTRoute/Certificate/root

server.crt - .../MQTTRoute/Certificate/server

servidor.key - .../MQTTRoute/Certificate/servidor

Creación de certificados auto-firmados - Windows
  • Crear certificado CA
  • Abra Windows File Explorer.
  • Navegue al directorio OpenSSL bin.
  • Haga clic con el botón derecho en el archivo openssl.exe y seleccione Ejecutar como administrador.
  • Introduzca el siguiente comando para comenzar a generar un certificado y clave privada:

nuevo -x509 -sha256 -nodos -días365 -newkey rsa:2048 - ¡Buena! root.key -out root.crt

Se le pedirá que introduzca el Nombre Distinguido aplicable (DN) información, totalizando siete campos:

Nombre del país (2 código de carta) [AU]:.

Nombre del Estado o provincia (nombre completo) [algunos Estados]:.

Localidad Nombre (por ejemplo, ciudad) []:.

Nombre de organización (por ejemplo, empresa) [Internet Widgits Pty Ltd]:Bevywise

Nombre de la Dependencia de Organización (por ejemplo, sección) []:.

Nombre común (por ejemplo, servidor FQDN o SU nombre) []:

Correo electrónico []:[email protected]

Puede modificar los detalles basados en su necesidad.

Una vez completado, encontrará la raíz. crt y root. archivos clave creado bajo el ..\\ Directorio OpenSSL\bin\\

Crear par de teclas servidor :

Otra vez, navegar a la carpeta de bin de openssl y entrar en la siguientes comandos:

genrsa -out server.key2048

req -new -out server.csr - servidor de llave. clave

Se le pedirá que introduzca el Nombre Distinguido aplicable (DN) información, totalizando siete campos:

Nombre del país (2 código de carta) [AU]:.

Nombre del Estado o provincia (nombre completo) [algunos Estados]:.

Localidad Nombre (por ejemplo, ciudad) []:.

Nombre de organización (por ejemplo, empresa) [Internet Widgits Pty Ltd]:Bevywise

Nombre de la Dependencia de Organización (por ejemplo, sección) []:

Nombre común (por ejemplo, servidor FQDN o SU nombre) []:mqtt.server.com

Correo electrónico []:[email protected]

Por favor, introduzca los siguientes atributos ‘extra’ que se enviarán con su solicitud de certificado.

Un reto contraseña []:

An Optional Company Name []:

Introduzca el siguiente comando en el prompt

x509 -req -in server.csr -CA root.crt - raíz de llave. clave -CACreateserial -out server.crt

Cargue los certificados creados en las carpetas respectivas.

root.crt in ../MQTTRoute/Certificate/root

server.crt in ../MQTTRoute/Certificate/server

server.crt in ../MQTTRoute/Certificate/server

Creación de certificados de CA confiable - Linux

En este ejemplo, usaremos certbot para generar LetsEncrypt Certificado y uso del certificado para permitir una comunicación segura TLS entre MQTTRoute y sus clientes.

Instalar certbot:

$ sudo snap install -classic certbot

$ sudo ln -s/snap/bin/certbot/usr/bin/certbot/

Crear certificado :

Sudo certbot certonly -standalone -d - No.

Los certificados serán creados y guardados en /etc/letsencrypt/live/según tu_domain

Establecer los caminos de estos certificados generados en Bevywise/MQTTRoute/conf/mqtt.conf

TLS_ENABLED = TRUE

SERVER_CERTIFICATE = /etc/letsencrypt/live/según su_domain Confes/fullchain.pem

SERVER_KEY = /etc/letsencrypt/live/según su_domain Confes/privkey.pem

CA_CERTIFICATE = /etc/letsencrypt/live/seguiste_domain confidencial/chain.pem

Creación de certificados de CA confiable - Windows

En este ejemplo, usaremos certbot para generar LetsEncrypt Certificado y uso que certificado para permitir una comunicación segura TLS entre MQTTRoute y sus clientes.

Instalar certbot:

Descargar la última versión del instalador Certbot para Windows de la url, https://dl.eff.org/certbot-beta-installer-win_amd64.exe.

Crear certificado :

Abrir el menú Inicio de Windows y lanzar Windows PowerShell como un Administrador.

Ingrese los siguientes comandos para solicitar un free Let's Encrypt SSL certificado.

PS = certbot -d

Los certificados serán creados y guardados en la carpeta en vivo de directorio de instalación. Establecer los caminos de estos certificados generados en Bevywise/MQTTRoute/conf/mqtt.conf

TLS_ENABLED = TRUE

SERVER_CERTIFICATE = /etc/letsencrypt/live/según su_domain Confes/fullchain.pem

SERVER_KEY = /etc/letsencrypt/live/según su_domain Confes/privkey.pem

CA_CERTIFICATE = /etc/letsencrypt/live/seguiste_domain confidencial/chain.pem

Configuración de bases de datos

Las opciones para configurar cómo los datos se almacenan por Broker está en Bevywise/CrystalMQ/conf/datastore.conf.

Información de dispositivos ( ID de dispositivos y suscripciones) y MQTT Payload (Mensajes publicados/recibidos) son almacenados por el corredor en una de las bases de datos relacionales, por defecto. La relación bases de datos respaldadas por el Broker son: SQLite, MySQL, MSSQL & PostgreSQL. La UI utiliza esta base de datos.

Sin embargo, si los datos necesitan ser almacenados en alguna otra base de datos, fuera el Broker, entonces se puede configurar también.

Almacenamiento de habilitación / desactivación en base de datos relacional

Para almacenar información de dispositivos ( ID de dispositivos, suscripciones) y Carga de pago (Mensajes publicados/Recibidos) en la base de datos,

  • Vaya a Bevywise/CrystalMQ/conf/datastore.conf
  • Set, RELATIONAL_PERSISTENCE_ENABLED como Verdad y habilitar PAYLOAD_TO_DB

RELATIONAL_PERSISTENCE_ENABLED = TRUE

PAYLOAD_TO_DB = ENABLED

Si no desea almacenar tanto información de dispositivo como carga útil base de datos, luego se establece

RELATIONAL_PERSISTENCE_ENABLED = FALSE

En este caso, CrystalMQ UI NO está disponible. Por lo tanto, PAYLOAD_TO_DB es Supongo que es DISABLE.

Para almacenar sólo la información del dispositivo en la base de datos y NO el MQTT Carga de pago, set

RELATIONAL_PERSISTENCE_ENABLED = TRUE

PAYLOAD_TO_DB = DISABLED

En este caso, solo se puede ver información de dispositivo en la UI.

Veamos las Configuraciones de base de datos relacionales a continuación.

Configuración SQLITE

SQLITE es la opción de almacenamiento predeterminada en MQTTRoute. Y por defecto, Broker almacenará datos en SQLITE.

Puede comprobar las configuraciones establecidas en la datastore. Conf. DB_SERVER será establecido en SQLITE.

[CONFIG]
DB_SERVER = SQLITE
# SQLITE Silencioso MYSQL

Además, compruebe la información de SQLite Server. Se da una configuración de muestra infra:

[SQLITE]
# SQLITE Silencioso MYSQL

La base de datos SQLite se almacenará en el camino Fuente/Bevywise/CrystalMQ/data.

Configuración de MySQL

Para configurar MySQL Server como la base de datos relacional utilizada por CrystalMQ, establecido en Bevywise/CrystalMQ/conf/data_store.conf

DB_SERVER = MYSQL

Además, establece la información de MySQL Server. A continuación se proporciona una configuración de muestra.

[MYSQL]

DBHOST = 127.0.0.1

DBPORT = 3306

MYSQL_DB = Bevywise

MYSQL_USER = root

MYSQL_PASSWORD = root

Nota : La configuración del servidor debe ser obtenida desde su servidor MySQL.

Instalación de conexión de MYSQL :

Instalar el conector MYSQL y otras dependencias ejecutando abajo Comando.

../MQTTRoute/bin

Windows

install_mysql_connector.bat

Linux

$ sh install_mysql_connector.sh

Configuración de MSSQL

Para configurar MSSQL Server como la base de datos relacional utilizada por CrystalMQ, establecido en Bevywise/CrystalMQ/conf/datastore.conf

DB_SERVER = MSSQL

Además, establece la información MSSQL Server. A continuación se proporciona una configuración de muestra

[MSSQL]

DRIVER = ODBC Driver 17 para SQL Server

SERVER_NAME =

DBPORT = 1434

MSSQL_DB = audaz

MSSQL_USER = sa

MSSQL_PASSWORD =

En Linux, establecer SERVER_NAME como el valor de “Descripción” en el archivo: /etc/odbcinst.ini

Configuración de PostgreSQL

Para configurar PostgreSQL Servidor como base de datos relacional utilizada por CrystalMQ, establecido en Bevywise/CrystalMQ/conf/datastore.conf

DB_SERVER = POSTGRES

También, set PostgreSQL Información del servidor. Se da una configuración de muestra infra

[POSTGRES]

PSQLHOST = 127.0.0.1

PSQLPORT = 5432

PSQL_DB

PSQL_USER = postgres

PSQL_PASSWORD = administración

MQTT Sparkplug B support

MQTT Sparkplug Bdepende de un corredor de MQTT para facilitar la comunicación entre dispositivos industriales, sensores y aplicaciones como SCADA, historiadores, etc. El corredor MQTT sirve como el subyacente comunicación infraestructura que se adhiere aMQTT protocoloestándares y maneja el enrutamiento de mensajes compatibles con Sparkplug B.

Dispositivos y aplicaciones compatibles con Sparkplug B publican y suscriben temas sobre el corredor de MQTT, siguiendo los formatos y directrices de datos estructurados especificados por el protocolo Sparkplug B.

El broker MQTT proporciona la columna vertebral de comunicación y el protocolo MQTT Sparkplug B define las normas y convenios para el intercambio de datos dentro de los ecosistemas industriales IoT, aprovechando capacidades del protocolo MQTT para una automatización y monitoreo industriales eficientes, fiables y escalables.

Nuestro broker, por defecto, admite dispositivos habilitados para Sparkplug sin requerir cambios en la configuración archivo. Sin embargo, es esencial para verificar que el ajuste 'authentication' está habilitado en el mqtt. Conf file.

AUTHENTICATION = TRUE

MQTT Clustering

AsegurarseAlto Disponibilidad, se pueden utilizar más de 1 corredores robustos. Nuestro CrystalMQ con el incorporadoInter-Broker Communicator (IBC)permite que todos los corredores del grupo hablen entre sí asegurando comunicación continua con los dispositivos de ambos modos Independientemente de que los clientes se conecten con cualquier corredor del grupo.

Un balanceador de carga se puede configurar en el borde del dispositivo para equilibrar el Carga.

Para obtener más información sobre la funcionalidad del comunicador inter-broker, lea nuestro blog de alta disponibilidad.

Para habilitar alta disponibilidad en CrystalMQ, debe activar el Communicator inter-broker primero.

Activar el comunicador Inter-Broker

La característica del comunicador interbroker integrado (IBC) garantiza que sea inigualable comunicación entre todos los corredores dentro de un grupo. Esto garantiza una conectividad continua con dispositivos en ambas direcciones, independientemente de a qué clientes de corredor se conectan.

Para habilitar IBC después de instalar MQTTRoute en las máquinas de corretaje, modifique el configuración en Bevywise/MQTTRoute/conf/mqtt.conf como sigue:

CLUSTERING_ENABLED Sí.

La siguiente ilustración demuestra la configuración:

ibccluster

En este arreglo se agrupan dos o más corredores con IBC habilitados para formar un grupo. A continuación, se configura un balanceador de carga para distribuir cargas de trabajo uniformemente a través de estos corredores. All MQTT corredores dentro del grupo permanecer activo, y IBC dentro de cada corredor garantiza la comunicación persistente utilizando un compartido Base de datos (BD). Esto significa que los corredores no se comunican directamente entre sí. En su lugar, empujan los datos al central database, allowing other corredores para acceder a estos datos. Como resultado, cada corredor tiene acceso a los datos y datos del cliente.

Nota:Usted tiene la flexibilidad de seleccionar cualquier balanceador de carga que se adapte a sus necesidades.

Para una comprensión más completa de la configuración de balanceador de carga Nginx, recomendamos comprobar nuestro blog detallado en alta disponibilidad.

Si usted ha optado por utilizar Azure como su balanceador de carga, sugerimos referirnos a nuestro dedicado blog post en Configuración de balanceador de carga azure para mayor claridad.

Refer :IoT Aplicación en el blog Azure

Supervisión de procesos utilizando Monit

Para ejecutar el MQTT Broker como servicio, necesitamos la versión 5,25 Monit. Monit es una dinámica de código abierto herramienta de monitoreo para sistemas Linux que se utiliza para monitorizar y gestionar procesos del sistema. Y también, realiza automático mantenimiento o reparación de un proceso particular (es decir, reiniciar el servicio) y ejecutar significativa acciones informales en condiciones de error cuando sea necesario.

Descargar & Install Monito:

$ sudo apt install monit

Sudo systemctl disable monit

# https://monit.com/monit/dist/binary/5.25.2/monit-5.25.2-linux-x64.tar.gz

Extraiga el archivo usando el comando siguiente:

$ tar -xvzf (Por ejemplo -$ tar -xvzf monit-5.25.2-linux-x64.tar.gz

Copiar archivo monitrc y pegar en la siguiente ubicación:

$ sudo cp monit-5.25.2/con/monitrc/etc/

$ sudo chmod 700 /etc/mmonitrc

Interfaz HTTP Monit:

Permitir la interfaz HTTP por un comentario de las siguientes líneas en /etc/monitrc file.

set httpd port 2812 and
use address localhost # only accept connection from localhost (drop if you use M/Monit)
permitir que localhost # permita que localhost se conecte al servidor y
Permitir administración: monit # require user ‘admin’ with password ‘monit ’

Si desea que puede cambiar admin:monit con nombre de usuario y contraseña usted querer usar

Inicio Monito :

$ cd monit-5.25.2/bin/

Sudo Pkill -9 dinero

Sudo ./monit

Open Monit UI usando la siguiente URL en su navegador web http://localhost:2812

Extensiones

CrystalMQ tiene ciertas extensiones para hacerlo flexible para los usuarios. Puedes personalizarlo basado en tus necesidades.

Estas extensiones personalizadas se pueden utilizar individualmente o en combinaciones a cumplir sus requisitos más allá de un MQTT Broker.

En CrystalMQ/extensions/extension_globals.py, hay objetos que se puede utilizar para consultar la base de datos interna, para enviar actualizaciones en vivo a la interfaz de usuario y para enviar mensajes a cliente conectado.

Estos objetos se pueden utilizar en las extensiones para producir convincentes personalizaciones.

Autenticación personalizada

Por defecto, la autenticación de dispositivos es hecha por el Broker. Pero, si la autenticación debe hacerse fuera del Broker, entonces esta opción se puede utilizar estableciendo en Bevywise/MQTTRoute/conf/mqtt.conf

  • Ir a ./CrystalMQ/conf (Path puede variar)
  • Abra mqtt.conf
  • Asegúrate de que la AUTHENTICACIÓN se establezca en Verdadero

AUTHENTICATION = CUSTOM

[DEVICE_AUTHENTICATION]

En este caso, el Usuario/Password enviado por dispositivos se reciben en el método custom_authenticate(nombre de usuario, contraseña, clienteid, ipaddress) en CrystalMQ/extensions/custom_authentication.py

Este método se puede actualizar para autenticar los dispositivos, la forma en que Requiere. (por ejemplo, HTTP Solicitud a un servidor LDAP externo)

Custom Data Store

AI / ML juega un papel importante en cualquier implementación de IoT. Así que los datos recibidos de los diferentes sensores necesita ser modelado y almacenado en cualquier motor de datos BIG para más análisis y toma de decisiones. MQTT Route proporciona una opción llamada la tienda personalizada para recibir datos en el extremo posterior para ser almacenado según sea necesario.

Aduanas La implementación de las tiendas se utiliza para conectar la carga útil recibida de MQTT Broker y almacenar la carga útil en cualquiera de sus análisis / gran motor de datos. Para configurar, en conf/datastore.conf

DATA_INTEGRATION = TRUE

En CrystalMQ/extensions/custom_store.py, hay dos ganchos método:
on_message_received_hook(data) - Este método obtiene datos cada vez que un cliente lo publica.
on_message_sent_hook(data) - Este método obtiene datos cada vez que se envía a un cliente.
Los datos se transmitirán en formato JSON con las siguientes claves:

datos: { "Sender":, 'topic':, "Mensaje":, 'unixtime':, Hora de cita:} Estos se métodos pueden utilizar para empujar/establecer los datos a otros sumideros de datos.

Servidor UI personalizado

UI servidor personalizado ofrece una opción para personalizar la interfaz de usuario. Tú. puede alterar el código en el archivo CrystalMQ/extensions/custom_ui_server.py como usted necesita para personalizarlo. Tú. podrá configurar su dashboard para ver los datos del dispositivo según sus necesidades. Puedes agregar tu propio requisitos, detalles del dispositivo o notificaciones a la interfaz del usuario según sea necesario. La UI personalizada servidor le ayudará a personalizar la interfaz de usuario del CrystalMQ añadiendo su propio código en el lado servidor. Añade tu nueva funcionalidad usando la URL y el método correspondiente. Estas URL pueden ser invocadas de su interfaz de usuario para manipular datos.

Personal Scheduler

El programador personalizado le ayudará a crear sus propios trabajos programados en Cristal MQ agregando su propio código en el lado del servidor.

Trabajos y horarios añadidos a CrystalMQ/extensions/custom_scheduler.py serán recogidos por el Broker. Para habilitar esto, se establece en el método custom_schedules()habilitador Las horarios = Verdadero

¿Lista para ampliar el poder de su corredor auto hospedado?

Mejorar la fiabilidad, el control y la personalización
con opciones avanzadas.

Desbloquear herramientas de monitoreo, funciones de automatización y soporte a nivel de expertos explora nuestros planes avanzados construidos para crecer con usted.