MQTT
MQTT (Message Queue Telemetry Transport) es un protocolo abierto de mensajes para comunicaciones M2M (máquina a máquina), que permite la transferencia de datos con estilo de telemetría en forma de mensajes desde dispositivos ubicuos a lo largo de redes de latencia alta o restringidas a un servidor o un pequeño agente mensajes. Los dispositivos ubicuos pueden ser desde sensores y actuadores hasta teléfonos móviles, sistemas integrados en vehículos o portátiles y ordenadores a escala completa.
MQTT funciona en la arquitectura de publicación/suscripción. MQTT requiere un agente de mensajes y dispositivos de comunicación. Los dispositivos de comunicación se pueden denominar clientes. El agente y los clientes pueden publicar y suscribirse a un parámetro denominado "Topic". La comunicación a través de MQTT se puede proteger mediante SSL.
La extensión MQTT proporciona conectividad a pequeños sensores y dispositivos electrónicos y les permite comunicarse con ThingWorx.
Se puede utilizar cualquier agente estándar para MQTT según los requisitos de la organización. Consulte la documentación del producto del agente que desee instalar para obtener información sobre cualquier configuración de control de usuario.
* 
En un sistema operativo Windows, el agente se ejecuta como un servicio después de la instalación.
Importación de MQTT
* 
El modelo de soporte de extensiones de ThingWorx ha cambiado recientemente. La mayoría de las extensiones ya no están disponibles en la página de descargas. Para obtener más información, consulte este artículo.
Consulte Importación de extensiones e importe el fichero MQTT_Extension.zip a ThingWorx. Cuando se instala la extensión, aparece lo siguiente en la lista Plantillas de cosa:
MQTTConnection
Permite una conexión compartida para las cosas MQTTSubscriber.
MQTTSubscriber
Permite suscripciones a uno o más temas en el servidor MQTT. Añada propiedades en Configuración > Propiedad a la sección de asignaciones del tema de MQTT.
Al editar una cosa MQTTSubscriber, reinicie la cosa MQTTConnection asociada para renovar.
MQTT
Permite toda la configuración anterior en una única cosa.
Configuración de MQTT
En la siguiente sección se describe cómo configurar los parámetros en MQTT después de instalar la extensión en ThingWorx y se desea establecer una conexión con un agente.
1. Ejecute el agente que se ha instalado en el ordenador.
2. En ThingWorx, cree una nueva Cosa, seleccione MQTT como Plantilla de cosa y pulse en Guardar.
3. Pulse en la vista Propiedades y alertas. Aparece la siguiente pantalla:
En la imagen anterior, las llamadas de salida 1 y 2 indican lo siguiente:
Llamada de salida
Descripción
1
El icono verde indica que la cosa que se ha creado está conectada al agente. Aparece en rojo cuando la cosa está desconectada.
2
La propiedad isConnected se define en verdadero en el campo Valor cuando se establece la conexión entre la cosa y el agente. El campo Valor se define en falso cuando se desconecta.
La propiedad se define como falsa cuando el nodo singleton de un entorno de alta disponibilidad de ThingWorx tiene problemas de conectividad con el agente. Sin embargo, los demás nodos seguirán publicando mensajes, incluso cuando la propiedad sea falsa.
4. Pulse en Añadir para añadir una propiedad:
5. Aparece la siguiente pantalla:
6. Introduzca el nombre de la propiedad, el tipo base y otros detalles necesarios.
7. Guarde la información relacionada con la propiedad.
* 
Para la ejecución correcta del evento de cambio de datos, asegúrese de que un usuario del sistema tenga los siguientes permisos.
Permiso Service Execute y Event Subscribe en el nivel de recopilación. Por ejemplo, en Cosa, ThingTemplate o ThingShape.
8. Pulse en la vista Configuración. Aparece la siguiente pantalla:
En la siguiente tabla se describen los distintos parámetros que se encuentran en la vista Configuración.
JDBC Settings
Descripción
clientIdFormat
El nombre del cliente registrado con agente de MQTT.
* 
Debe ser exclusivo para un agente de MQTT.
El token {s} es para el nombre de servidor de ThingWorx Platform. Toma el valor mencionado en la configuración de Subsistema de federación como el nombre del servidor.
El token {t} es para el nombre de cosa actual. Si desea que diferentes plataformas se conecten a un agente y tengan cosas con el mismo nombre, se recomienda especificar el nombre del servidor en el campo Subsistema de federación.
useSSL
Seleccione esto si el agente soporta conexiones seguras.
serverName
El nombre de host en el que se ejecuta el agente de MQTT.
* 
Deje el campo vacío si el agente se ejecuta en el mismo ordenador que ThingWorx Platform.
serverPort
Puerto para el agente de MQTT. El valor por defecto es 1883.
userId
El nombre de usuario que se debe conectar al agente.
Password
La contraseña para el ID de usuario.
Timeout
Tiempo en milisegundos que se debe esperar para que una solicitud de publicación se realice correctamente. El valor por defecto es 5000 ms.
ConnectTimeout
Tiempo en milisegundos que se debe esperar para que se establezca una conexión entre ThingWorx Platform y el agente de MQTT.
retryInterval
El tiempo de intervalo en milisegundos para volver a intentar la conexión si se interrumpe una conexión con un agente de MQTT.
El mecanismo de reintento solo funciona si se ha establecido en algún momento la conexión y posteriormente se ha interrumpido.
retryAttempts
Número de veces que se realizan intentos de conexión.
Por ejemplo, si una conexión establecida se interrumpe debido a interferencias de la red o cualquier otro problema, el valor introducido en este campo proporciona el número de intentos realizados para restablecer la conexión. Cada reintento se separa por el valor de retryInterval mencionado anteriormente.
pingInterval
Tiempo en milisegundos para realizar una verificación periódica del estado de conexión entre ThingWorx Platform y el agente de MQTT.
El valor por defecto es 45 segundos. Cada 45 segundos, se envía un mensaje ping al agente de MQTT para verificar si hay una respuesta. La respuesta del agente significa que la conexión es válida.
connectionIdleTimeout
Tiempo de inactividad en milisegundos para una conexión.
Si la conexión está inactiva después de este tiempo definido, indica que no hay ninguna comunicación de mensajes en el canal y la cosa se marca como desconectada.
Cuando las propiedades no se publican ni se suscribe a ellas, pingInterval va actualizando el último tiempo activo para que la cosa no se desconecte.
qos
Este valor define el nivel de prioridad de la comunicación entre el agente y sus clientes.
maxInFlight
Permite definir maxinflight. Aumente este valor en un entorno de alto tráfico.
En la tabla de configuración AutoMapping se incluye la configuración para asignar automáticamente las propiedades de publicación o suscripción. Si la asignación automática está activada, no es necesario especificar la tabla para Mappings. Cualquier propiedad que se cree en la cosa se asigna automáticamente a un tema. El nombre del tema se decide según los valores format que se mencionan a continuación:
AutoMapping
Descripción
format
Formato del nombre del tema que corresponde a una propiedad.
El token {s} corresponde al nombre del servidor, {t} al nombre de cosa y {p} al nombre de la propiedad.
enabled
Se puede seleccionar la función de asignación automática.
9. Para asignar propiedades de cosa a temas de MQTT manualmente, pulse en Añadir en la sección Mappings.
Aparece la siguiente pantalla:
En la siguiente tabla se muestran las opciones de configuración disponibles para cada asignación:
Subscribe
Permite suscribir la propiedad para recibir los cambios publicados en el tema especificado desde el agente MQTT.
Publish
Permite publicar los cambios en los valores de las propiedades al agente MQTT utilizando el tema especificado.
Retain
Se conserva el último valor de la propiedad publicada en el agente de MQTT. Cuando un nuevo dispositivo o cliente se suscribe a un tema con un mensaje retenido, el agente envía automáticamente un mensaje en el que se incluye el último valor publicado. La conservación de los valores de mensajes puede ser útil cuando un cliente requiere un valor inicial. En lugar de definir un valor de marcador inicial y esperar al siguiente mensaje, se envía un valor conservado.
Nombre
Nombre de la propiedad de la cosa a la que se debe asignar el agente de MQTT.
Tema
El nombre del tema a publicar o suscribir en el agente MQTT.
10. Introduzca el nombre de la propiedad que se ha añadido en el paso 6 aquí y el nombre del tema, y elija Suscribirse, Publicaro Conservar. La propiedad se publica o se suscribe en el nombre del tema que se introduce.
11. Pulse en Añadir.
12. En la vista Properties and Alerts, pulse en Definir valor.
13. Aparece la siguiente pantalla.
Introduzca el valor de la propiedad en el campo y guárdelo.
14. Siga los comandos de ejecución específicos del agente instalado en el ordenador y verifique las actividades de publicación y suscripción entre la propiedad de cosa y el agente.
¿Fue esto útil?