DRAFT — Preliminary version, do not share. · Version préliminaire, ne pas partager.

Passerelles et sous-appareils

Une passerelle est un appareil qui publie pour le compte d'autres appareils : des sous-appareils qui possèdent leur propre numéro de série mais aucune connexion propre, et des balises qu'elle détecte à proximité. Cette page vous montre comment une passerelle signale la télémétrie, les heartbeats et les états de ces appareils.

Une passerelle avec sa propre connexion MQTT publie la télémétrie des sous-appareils sur subdevices//events, les heartbeats des sous-appareils dans un heartbeat de version 1, les lectures des balises dans ses propres états, et l'état des actions pour plusieurs appareils

Avant de commencer

Dans les exemples, <prefix> représente le préfixe de la passerelle, registries/<registry-id>/devices/<gateway-serial-number>.

Données pour Comment la passerelle les signale
Télémétrie d'un sous-appareil Publiez sur <prefix>/subdevices/<sub-serial-number>/events, ou .../events/<subtype> pour l'acheminer comme les sous-types propres à l'appareil
Durée de fonctionnement d'un sous-appareil Heartbeat version 1 (protobuf), avec une liste sub_devices
États des balises Tableau beacons dans les états propres de la passerelle

1. Envoyer la télémétrie d'un sous-appareil

Publiez la télémétrie du sous-appareil sous le préfixe de la passerelle. Comme pour toute télémétrie, le format est libre :

mosquitto_pub -V mqttv5 \
  -h mqtts.fundamentum-iot.com -p 8883 --cafile isrgrootx1.pem \
  -i "projects/<project-id>/regions/1/registries/<registry-id>/devices/<gateway-serial-number>" \
  -u unused -P "$JWT" \
  -t "registries/<registry-id>/devices/<gateway-serial-number>/subdevices/<sub-serial-number>/events" \
  -m '{"temperature": 19.8}'

events est le seul topic autorisé sous subdevices/.

2. Signaler les heartbeats des sous-appareils

Pour signaler ensemble la durée de fonctionnement de la passerelle et de ses sous-appareils, publiez un message protobuf Heartbeat sur <prefix>/heartbeat avec la propriété utilisateur MQTT 5 v définie à 1. Le message contient une liste sub_devices.

Sans la propriété v, ou avec v défini à 0, le heartbeat est le JSON simple {"uptime": <seconds>} de la passerelle seule. Consultez MQTT topics and message formats pour le schéma protobuf.

3. Signaler les balises

Les balises sont de petits appareils que la passerelle se contente de détecter, comme les étiquettes Bluetooth. Ajoutez-les aux états de la passerelle, dans le tableau beacons :

{
  "timestamp": 1789167823,
  "states": { "battery_level": 87 },
  "beacons": [
    {
      "identification": "beacon-abc123",
      "states": { "rssi": -67, "battery_level": 44 }
    }
  ]
}

Chaque balise est un appareil à part entière, identifié par identification. La plateforme stocke ses états et enregistre son rssi comme une détection par la passerelle.

Utiliser le daemon Edge sur une passerelle

Le Linux daemon gère les sous-appareils pour vous :

Appel gRPC Utilisation
Heartbeat.AttachSubDevice, Heartbeat.Send Signaler les heartbeats des sous-appareils
StatesEvent.PublishJson Publier les états, avec une liste sub_devices
Actions.UpdateStatus, FirmwareUpdate.UpdateStatus Signaler l'état d'un ou de plusieurs appareils, via serial_numbers

Étapes suivantes