Envoyer la télémétrie, les états et les heartbeats
Cette page vous montre comment un appareil connecté publie ses trois types de données : la télémétrie, les états et les heartbeats. Elle indique le topic et un exemple de charge utile pour chacun.
Avant de commencer
- L'appareil est connecté via MQTTS. Voir Connect over MQTTS.
- Dans les exemples,
<prefix>représenteregistries/<registry-id>/devices/<serial-number>. Les exemples Mosquitto réutilisent les options de connexion de Connect over MQTTS.
| Données | Topic | Format | Action de la plateforme |
|---|---|---|---|
| Télémétrie | <prefix>/events ou <prefix>/events/<name> |
Quelconque (JSON, binaire, texte) | La transmet telle quelle aux topics du registre |
| États | <prefix>/states |
JSON Fundamentum | Stocke les dernières valeurs de l'appareil |
| Heartbeat | <prefix>/heartbeat |
JSON (ou protobuf pour les passerelles) | Suit la connectivité et les redémarrages |
1. Envoyer la télémétrie
La télémétrie correspond aux données de votre application. La plateforme ne l'analyse pas : publiez n'importe quel format, et elle parvient à vos topics telle quelle.
mosquitto_pub -V mqttv5 \
-h mqtts.fundamentum-iot.com -p 8883 --cafile isrgrootx1.pem \
-i "projects/<project-id>/regions/1/registries/<registry-id>/devices/<serial-number>" \
-u unused -P "$JWT" \
-t "registries/<registry-id>/devices/<serial-number>/events" \
-m '{"temperature": 21.4, "door": "open"}'
Pour envoyer vers un topic nommé du registre, ajoutez son nom : <prefix>/events/<name>. Utilisez des topics nommés pour séparer les flux, par exemple les alarmes et les mesures. Voir Topics.
2. Envoyer les états
Les états décrivent la condition actuelle de l'appareil, comme le niveau de batterie ou la température. Publiez-les au format Fundamentum afin que la plateforme les stocke :
{
"timestamp": 1789167823,
"states": {
"battery_level": 87,
"temperature": 21.4
}
}
| Champ | Type | Description |
|---|---|---|
timestamp |
Entier | Heure Unix, en secondes, à laquelle les valeurs ont été lues |
states |
Objet | Paires clé-valeur des états de l'appareil |
beacons |
Tableau | Facultatif. États des balises à proximité ; voir Gateways and sub-devices |
Publiez vers <prefix>/states. Une charge utile qui ne respecte pas ce format est acheminée, mais n'est pas stockée comme états.
3. Envoyer les heartbeats
Un heartbeat indique à la plateforme que l'appareil est actif. Envoyez-le à intervalle régulier ; le daemon Edge utilise par défaut un intervalle de 15 minutes.
{ "uptime": 86400 }
uptime est le nombre de secondes écoulées depuis le démarrage de l'appareil. Lorsque l'uptime diminue entre deux heartbeats, la plateforme enregistre un redémarrage.
Publiez vers <prefix>/heartbeat. Les passerelles qui signalent l'uptime des sous-appareils utilisent plutôt un heartbeat protobuf ; voir Gateways and sub-devices.
4. Vérifier les données
- Ouvrez la page de l'appareil dans le Hub pour voir ses derniers états et sa connectivité.
- Consommez la télémétrie depuis vos topics. Voir Topics.
Choisir une qualité de service
Utilisez QoS 1 pour les données que vous ne pouvez pas vous permettre de perdre et QoS 0 pour les mesures fréquentes et remplaçables.
Étapes suivantes
- Gateways and sub-devices pour envoyer des données au nom d'autres appareils.
- Actions and custom encoders pour recevoir des actions sur l'appareil.
- Firmware updates (OTA).
- MQTT topics and message formats pour les commandes, la configuration et toutes les charges utiles.