Étape 2: MQTT sujets
Il s’agit d’un bon moment d’avoir une discussion rapide concernant les sujets MQTT.
Ce qui est un sujet ?
Un sujet est une chaîne composée de caractères UTF-8 (Unicode Transformation Format 8 bits) et les données envoyées par un éditeur à un courtier pour être transmis à tous les abonnés. Bref, c’est une chaîne de texte de base.
Comment ils sont construits ?
Sujets sont répartis en une ou plusieurs rubrique niveau chaque avec un minimum d’au moins 1 caractère. Ces niveaux sont séparés par une barre oblique « / » et peuvent inclure ' '(espaces). Par exemple (non compris les guillemets) ;
« ce/est/a/6/niveau/sujet exemple avec des espaces »
Bien que sans doute pas très utile rubrique, franchit j’espère que le point. Les sujets sont casse donc ;
« test/sujet »
est différent
« Test/sujet »
Il s’agit d’un sujet unique
« x »
que sont les suivants ;
' ' (space) and '/'
Il n’y a aucune action spéciale nécessaire de créer un sujet, l’acte de publication ou d’abonnement accomplit cette tâche pour vous.
Et c’est tout.
Y at-il un format spécial ou les meilleures pratiques permettant de construire des sujets ?
La réponse est « non » et il y a beaucoup de vues autour de comment vous devez inventer (et je vais aborder le sujet dans une Instructable plus tard). Toutefois, vous devrez étudier ce qui suit lorsque vous créez vos sujets ;
Les garder courts. Ils sont envoyés sur le réseau et doivent être analysée (Lire) par un dispositif/courtier/serveur, donc les plus longs et plus complexes vous rendent plus ils sont difficile à décoder.
Si vous le pouvez, utiliser des noms significatifs. Il rend plus facile le débogage. Comme un être humain, c’est beaucoup plus simple de taper, ou lire 'Capteur1' que 'Wcp10X! 3wdrka2'.
Les rendent ont une signification pour vous. Les exemples que j’ai vu ont tendance à être comme une sorte d’adresse tels que ;
'myhouse/premier étage/chambre à coucher un / / plafonnier'
Cela suppose un dispositif d’ITO emplacement fixe, et la plupart du temps, ce sera vrai, bien que ce type de nomenclature échoue lors de l’examen des dispositifs d’Ito mobiles ou re-déployables, tel qu’un capteur de température humidité, ou prise commutable. Si vous décidez de passer une prise commutable de la salle de séjour à la chambre à coucher pour remplacer un appareil défectueux, vous aurez besoin de reprogrammer l’appareil ITO pour répondre à son nouvel emplacement soit compatible.
Pour ma série sur ITO fondé domotique que j’utiliserai les sujets qui se réfèrent à l’appareil seulement comme ;
« / EthernetDevice/Led1Command »
ou
« / WiFiDevice/Temp1Status »
C’est parce que je veux en fin de compte utiliser une base de données MySQL pour maintenir la configuration et les informations de périphérique de l’ITO. Qui je vais aborder j’espère que plus tard.
Oh et une dernière chose, il s’agit généralement ne pas de faire précéder la première rubrique avec un « / », mais vous pouvez le voir j’ai ignoré ce. :-)
Y a-t-il une coupe courte ?
Oui, offres MQTT, ce qui est connaissent sous rubrique « wild cards ». Ce sont des caractères spéciaux, qu'un abonné peut placer dans une rubrique abonnée pour réduire la nécessité de vous abonner à plusieurs éléments. Il existe deux types de caractères génériques ; « + » appelés ' seul niveau ' et '#' pour "Multi Level". La photo ci-dessus donne des exemples des deux.
Un mot d’Avertissement. Si vous utilisez la '#' multi niveau wild-card et avez beaucoup de dispositifs IoT dans votre système, alors soyez prêt pour un grand nombre de messages !
Y a-t-il des sujets particuliers ?
Oui, les sujets commençant par '$' sont réservées aux statistiques internes du courtier MQTT. Au moment de la rédaction de ce Instructable il n’y a aucune normalisation clairement officielle des sujets qui doivent être publiés par un courtier. Toutefois, il est fréquent de préfixer avec ' $SYS /' pour ce type d’information. Le mosquitto MQTT courtier est conforme à cette ' $SYS/courtier / #'. (voir la page de manuel mosquitto Linux pour plein de détails. c’est à dire. homme mosquitto)
Donc si vous voulez voir tous le mosquitto statistiques MQTT courtier vous devez vous abonner MQTTSpy à ce qui suit (voir les prochaines étapes pour plus de détails) ;
' $SYS/courtier / #'