Alternative HTTPS
Lorsqu'un appareil ne peut pas maintenir une connexion MQTT ouverte, il peut envoyer de la télémétrie via HTTPS avec le même JWT que celui qu'il utiliserait pour MQTT. Cette page présente l'appel et ses limites.
Quand l'utiliser
| Utilisez HTTPS lorsque | Préférez MQTTS lorsque |
|---|---|
| L'appareil se réveille rarement et envoie un seul message | L'appareil envoie des données fréquemment |
| Votre réseau n'autorise que le HTTPS sortant | L'appareil a besoin de commandes, de configuration, d'actions ou de mises à jour du micrologiciel |
| Vous testez une charge utile depuis un script | Vous avez besoin d'états, de heartbeats ou de topics de télémétrie nommés |
Via HTTPS, un appareil ne peut qu'envoyer de la télémétrie. Tout ce que la plateforme envoie à l'appareil nécessite MQTTS.
Avant de commencer
- L'appareil est provisionné, et vous connaissez l'ID de son projet, l'ID de son registre et son numéro de série. Consultez Provisionnement.
- Vous savez signer un JWT d'appareil. Consultez Se connecter via MQTTS.
1. Signer un JWT d'appareil
Signez un JWT avec la clé privée de l'appareil (RS256), en définissant aud avec l'ID du projet, ainsi que iat et exp. Stockez-le dans $JWT.
2. Publier la télémétrie
curl -s -X POST \
https://devices.fundamentum-iot.com/api/v3/projects/<project-id>/regions/1/registries/<registry-id>/devices/<serial-number>/telemetry \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"temperature": 21.4, "door": "open"}'
Le corps est un objet JSON quelconque. La plateforme le transmet, sans modification, au flux de télémétrie par défaut du projet, comme un message MQTT sur <prefix>/events. Il n'existe pas d'équivalent HTTPS aux topics nommés (events/<name>).
3. Vérifier la réponse
| Statut | Signification |
|---|---|
200 |
Accepté : {"status": "success"} |
400 |
La requête est invalide |
401 |
L'en-tête Authorization est manquant |
403 |
Le JWT n'autorise pas cet appareil |
Envoyer des heartbeats et des états via HTTPS
La Devices API dispose également de POST …/devices/<serial-number>/heartbeat et de GET …/devices/<serial-number>/states. Ce sont des endpoints de gestion : ils acceptent un jeton d'utilisateur OAuth ou de compte de service, et non le JWT de l'appareil. Un appareil sur le terrain doit envoyer ses heartbeats via MQTTS.
Étapes suivantes
- Référence de l'API dans Swagger UI : Devices API v3
- Topics pour consommer la télémétrie.
- Référence de la Devices API v3 pour la liste complète des endpoints.