MQTT
Notas de la versión
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
La extensión MQTT se puede descargar de support.ptc.com en Descargar software > Pedir o descargar actualizaciones de software > ThingWorx Foundation > Versión <versión más reciente> > ThingWorx MQTT Extension > Most Recent Datecode > MQTT--<versión>-Extension. Consulte Importación de extensiones e importe el fichero MQTT_Extension.zip en 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.
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.
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 para 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.
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 una propiedad. 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. Introduzca los valores en los campos según las necesidades y pulse en Añadir de la configuración Mappings.
Aparece la siguiente pantalla:
10. Introduzca aquí el nombre de propiedad que se ha añadido en el paso 6 y el nombre del tema, y luego seleccione suscribirse y/o publicar. La propiedad se publica o se suscribe en el nombre del tema que se introduce aquí.
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.