MQTT
Notes de mise à jour
MQTT (Message Queue Telemetry Transport) est un protocole de messagerie ouvert pour les communications M2M (machine à machine). Il permet de transférer des données de type télémétrique sous la forme de messages, depuis des dispositifs omniprésents vers un serveur ou un petit courtier de messages, par l'intermédiaire de réseaux limités ou à forte latence. Les dispositifs omniprésents peuvent aussi bien être des capteurs et des actionneurs que des téléphones mobiles, des systèmes embarqués sur des véhicules ou des ordinateurs, portables ou non.
MQTT fonctionne sur une architecture de type publication/abonnement. Il nécessite un courtier de messages et des dispositifs communicants. Ces derniers peuvent être appelés clients. Le courtier et les clients peuvent publier un paramètre nommé "Rubrique" et s'y abonner. Vous pouvez sécuriser la communication via MQTT à l'aide de SSL.
L'extension MQTT fournit une connectivité à de petits capteurs et appareils électroniques et leur permet de communiquer avec ThingWorx.
Vous pouvez utiliser n'importe quel courtier standard pour MQTT, selon les besoins de votre organisation. Reportez-vous à la documentation produit du courtier que vous souhaitez installer pour en savoir plus sur les paramètres de contrôle utilisateur.
* 
Dans un système d'exploitation Windows, le courtier est exécuté en tant que service après l'installation.
Importation de MQTT
Vous pouvez télécharger l'extension MQTT à partir du site support.ptc.com, sous Télécharger un logiciel > Commander et télécharger des mises à jour > ThingWorx Foundation > Release <dernière version> > ThingWorx MQTT Extension > Code de date le plus récent > MQTT--<version>-extension. Consultez la rubrique Importation d'extensions et importez le fichier MQTT_Extension.zip dans votre installation ThingWorx. Une fois l'extension installée, les éléments suivants s'affichent dans la liste des Modèles d'objet :
MQTTConnection
Fournit une connexion partagée pour les objets MQTTSubscriber.
MQTTSubscriber
Permet les abonnements à une ou plusieurs rubriques sur le serveur MQTT. Ajoutez les propriétés sous Configuration > Propriété à la section de mappages des rubriques MQTT.
Lors de la modification d'un objet MQTTSubscriber, redémarrez l'objet MQTTConnection associé pour effectuer une actualisation.
MQTT
Permet toutes les configurations ci-dessus dans un objet unique.
Configuration de MQTT
Cette section décrit la configuration des paramètres dans MQTT, une opération qui suit l'installation de l'extension dans ThingWorx et pendant laquelle vous souhaitez établir une connexion à un courtier.
1. Exécutez le courtier que vous avez installé sur la machine.
2. Dans ThingWorx, créez un nouvel Objet, sélectionnez MQTT comme Modèle d'objet, puis cliquez sur Enregistrer.
3. Cliquez sur la vue Propriétés et alertes. L'écran suivant s'affiche :
Dans l'image ci-dessus, les légendes 1 et 2 indiquent les informations suivantes :
Légende
Description
1
L'icône verte indique que l'objet que vous avez créé est connecté au courtier. Elle apparaît en rouge lorsque l'objet est déconnecté.
2
La propriété isConnected est définie sur "vrai" dans le champ Valeur lorsque la connexion est établie entre l'objet et le courtier. Le champ Valeur est défini sur "faux" lorsqu'il est déconnecté.
4. Cliquez sur Ajouter pour ajouter une propriété.
5. L'écran suivant apparaît :
6. Entrez le nom de la propriété, le type de base et les autres détails requis.
7. Enregistrez les informations associées à la propriété.
8. Cliquez sur la vue Configuration. L'écran suivant s'affiche :
La table suivante décrit les différents paramètres de la vue Configuration.
JDBC Settings
Description
clientIdFormat
Nom du client enregistré auprès du client MQTT.
* 
Il doit être unique pour un courtier MQTT.
Le jeton {s} correspond au nom de serveur de ThingWorx Platform. Il prend la valeur mentionnée dans la configuration du sous-système de fédération pour le nom du serveur.
Le jeton {t} correspond au nom de l'objet actuel. Si vous souhaitez connecter plusieurs plateformes à un seul courtier et qu'elles disposent d'objets portant le même nom, il est recommandé de spécifier le nom du serveur dans le sous-système de fédération.
useSSL
Sélectionnez cette option si votre courtier prend en charge les connexions sécurisées.
serverName
Nom d'hôte sur lequel le courtier MQTT est en cours d'exécution.
* 
Ne renseignez pas le champ si le courtier est en cours d'exécution sur la même machine que ThingWorx Platform.
serverPort
Port du courtier MQTT. La valeur par défaut est 1883.
userId
Nom d'utilisateur pour la connexion au courtier.
Password
Mot de passe du paramètre userId.
Timeout
Délai d'attente, en millisecondes, pour la réussite d'une requête de publication. La valeur par défaut est 5000 mS.
ConnectTimeout
Délai d'attente, en millisecondes, pour l'établissement d'une connexion entre ThingWorx Platform et le courtier MQTT.
retryInterval
Intervalle, en millisecondes, entre deux tentatives de connexion si une connexion à un courtier MQTT est interrompue.
Ce mécanisme ne fonctionne que si la connexion a été établie à un moment donné avant d'être interrompue.
retryAttempts
Nombre de tentatives de reconnexion.
Par exemple, si une connexion établie est interrompue suite à des perturbations du réseau ou à d'autres problèmes, le nombre de tentatives de reconnexion est défini par la valeur spécifiée dans ce champ. Chaque tentative de reconnexion est espacée selon la valeur du paramètre retryInterval décrit précédemment.
pingInterval
Délai, en millisecondes, pour le contrôle périodique du statut de connexion entre ThingWorx Platform et le courtier MQTT.
La valeur par défaut est de 45 secondes. Toutes les 45 secondes, un message ping est envoyé au courtier MQTT qui doit renvoyer une réponse. Si le courtier répond, la connexion est valide.
connectionIdleTimeout
Temps d'inactivité, en millisecondes, d'une connexion.
Si la connexion est inactive au-delà de cette période définie, il est indiqué qu'aucune communication de message n'est survenue dans le canal et que l'objet est marqué comme étant déconnecté.
Lorsque les propriétés ne sont pas publiées ou ne font l'objet d'aucun abonnement, le paramètre pingInterval continue de mettre à jour la durée de la dernière activité afin que l'objet ne soit pas déconnecté.
qos
Cette valeur définit le niveau de priorité des communications entre le courtier et ses clients.
La table de configuration AutoMapping contient les paramètres de mappage automatique des propriétés pour la publication ou l'abonnement. Si le mappage automatique est activé, vous n'avez pas besoin de spécifier la table pour Mappings. Toute propriété que vous créez dans l'objet est mappée automatiquement à une propriété. Le nom de la rubrique est déterminé par le paramètre format décrit ci-après :
AutoMapping
Description
format
Format du nom de rubrique correspondant à une propriété.
Le jeton {s} correspond au nom du serveur, {t} au nom de l'objet et {p} au nom de la propriété.
enabled
Vous pouvez sélectionner la fonction de mappage automatique.
9. Spécifiez les valeurs dans les champs en fonction de vos besoins, puis cliquez sur Ajouter dans le paramètre Mappings.
L'écran suivant apparaît :
10. Spécifiez le nom de la propriété que vous avez ajoutée à l'étape 6 et le nom de la rubrique, puis sélectionnez s'abonner et/ou publier. La propriété publie sur la rubrique spécifiée ou s'y abonne.
11. Cliquez sur Ajouter.
12. Dans la vue Properties and Alerts, cliquez sur Définir la valeur.
13. L'écran suivant apparaît.
Spécifiez la valeur de la propriété dans le champ, puis enregistrez-la.
14. Suivez les commandes d'exécution spécifiques au courtier installé sur votre machine et vérifiez les activités de publication et d'abonnement entre la propriété d'objet et le courtier.