Résolution de la localisation de l'appareil à l'aide des rubriques MQTT AWS IoT Core relatives à la localisation - AWS IoT Core

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution de la localisation de l'appareil à l'aide des rubriques MQTT AWS IoT Core relatives à la localisation

Vous pouvez utiliser des sujets MQTT réservés pour obtenir les dernières informations de localisation de vos appareils grâce à la fonction de localisation des AWS IoT Core appareils.

Format des rubriques MQTT relatives à la localisation des appareils

Les rubriques réservées pour la localisation des AWS IoT Core appareils utilisent le préfixe suivant :

$aws/device_location/{customer_device_id}/

Pour créer une rubrique complète, remplacez customer_device_id par votre identifiant unique que vous utilisez pour identifier votre appareil. Nous vous recommandons de spécifier leWirelessDeviceId, par exemple pour les appareils LoRa WAN et SidewalkthingName, et si votre appareil est enregistré en tant qu' AWS IoT objet. Vous ajoutez ensuite la rubrique avec le stub de rubrique, tel que get_position_estimate ou get_position_estimate/accepted comme indiqué dans la section suivante.

Note

Le {customer_device_id} ne peut contenir que des lettres, des chiffres et des tirets. Lorsque vous vous abonnez à des rubriques relatives à la localisation des appareils, vous ne pouvez utiliser le signe plus (+) que comme caractère générique. Par exemple, vous pouvez utiliser le caractère + générique pour {customer_device_id} pour obtenir les informations de localisation de vos appareils. Lorsque vous vous abonnez à la rubrique $aws/device_location/+/get_position_estimate/accepted, un message contenant les informations de localisation des appareils correspondant à n'importe quel identifiant d'appareil est publié si le problème a été résolu avec succès.

Les rubriques réservées utilisées pour interagir avec la localisation de l' AWS IoT Core appareil sont les suivantes.

Format des rubriques MQTT de Device location
Rubrique Opérations autorisées Description

$aws/device_location/ customer_device_id /get_position_estimate

Publish

Un appareil publie dans cette rubrique pour obtenir les données de mesure brutes numérisées à résoudre en fonction de l'emplacement de AWS IoT Core l'appareil.

$aws/device_location/customer_device_id/get_position_estimate/accepted

S’abonner

AWS IoT Core La localisation de l'appareil publie les informations de localisation dans cette rubrique lorsqu'elle résout avec succès la localisation de l'appareil.

$aws/device_location/customer_device_id/get_position_estimate/rejected

Souscrire

AWS IoT Core L'emplacement du périphérique publie les informations d'erreur dans cette rubrique lorsqu'il ne parvient pas à résoudre l'emplacement du périphérique.

Rubriques MQTT relatives à la politique de localisation des appareils

Pour recevoir des messages provenant de sujets relatifs à la localisation de l'appareil, celui-ci doit utiliser une politique lui permettant de se connecter à la passerelle de l' AWS IoT appareil et de s'abonner aux sujets MQTT.

Voici un exemple de la politique requise pour recevoir des messages pour les différentes rubriques.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account:topic/$aws/device_location/customer_device_id/get_position_estimate" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account:topic/$aws/device_location/customer_device_id/get_position_estimate/accepted", "arn:aws:iot:region:account:topic/$aws/device_location/customer_device_id/get_position_estimate/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account:topicfilter/$aws/device_location/customer_device_id/get_position_estimate/accepted", "arn:aws:iot:region:account:topicfilter/$aws/device_location/customer_device_id/get_position_estimate/rejected" ] } ] }

Sujets relatifs à la localisation des appareils et charge utile

Vous trouverez ci-dessous les rubriques relatives à la localisation des AWS IoT Core appareils, le format de la charge utile des messages et un exemple de politique pour chaque rubrique.

/get_position_estimate

Publiez un message dans cette rubrique pour obtenir les données de mesure brutes de l'appareil à résoudre en fonction de l'emplacement de AWS IoT Core l'appareil.

$aws/device_location/customer_device_id/get_position_estimate

AWS IoT Core Device Location répond en publiant sur l'un /get_position_estimate/accepted ou l'autre/get_position_estimate/rejeté.

Note

Le message publié dans cette rubrique doit être une charge utile JSON valide. Si le message d'entrée n'est pas au format JSON valide, vous n'obtiendrez aucune réponse. Pour plus d’informations, consultez Message payload. (Charge utile du message)

Le format de charge utile du message suit une structure similaire à celle du corps de la demande AWS IoT Wireless d'opération d'API, GetPositionEstimate. Il contient :

  • Chaîne facultative Timestamp, qui correspond à la date et à l'heure de résolution de l'emplacement. La chaîne Timestamp peut avoir une longueur minimale de 1 et une longueur maximale de 10.

  • Chaîne facultative MessageId, qui peut être utilisée pour mapper la demande à la réponse. Si vous spécifiez cette chaîne, le message publié dans les rubriques get_position_estimate/accepted ou get_position_estimate/rejected contiendra ce MessageId. La chaîne MessageID peut avoir une longueur minimale de 1 et une longueur maximale de 256.

  • Les données de mesure de l'appareil qui contient un ou plusieurs des types de mesure suivants :

Ce qui suit montre un exemple de charge utile de message.

{ "Timestamp": "1664313161", "MessageId": "ABCD1", "WiFiAccessPoints": [ { "MacAddress": "A0:EC:F9:1E:32:C1", "Rss": -66 } ], "Ip":{ "IpAddress": "54.192.168.0" }, "Gnss":{ "Payload":"8295A614A2029517F4F77C0A7823B161A6FC57E25183D96535E3689783F6CA48", "CaptureTime":1354393948 } }

Voici un exemple de document de stratégie requise :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account:topic/$aws/device_location/customer_device_id/get_position_estimate" ] } ] }

/get_position_estimate/accepted

AWS IoT Core L'emplacement de l'appareil publie une réponse à cette rubrique lorsque vous renvoyez les informations de localisation résolues pour votre appareil. Les informations de localisation sont renvoyées en format GeoJSON.

$aws/device_location/customer_device_id/get_position_estimate/accepted

Vous trouverez ci-dessous la charge utile des messages et un exemple de politique.

Voici un exemple de la charge utile du message au format GeoJSON. Si vous avez spécifié un MessageId dans vos données de mesure brutes et que AWS IoT Core Device Location a résolu les informations de localisation avec succès, la charge utile du message renvoie les mêmes MessageId informations.

{ "coordinates": [ 13.37704086303711, 52.51865005493164 ], "type": "Point", "properties": { "verticalAccuracy": 707, "verticalConfidenceLevel": 0.68, "horizontalAccuracy": 389, "horizontalConfidenceLevel": 0.68, "country": "USA", "state": "CA", "city": "Sunnyvalue", "postalCode": "91234", "timestamp": "2022-11-18T14:03:57.391Z", "messageId": "ABCD1" } }

Voici un exemple de document de stratégie requise :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account:topicfilter/$aws/device_location/customer_device_id/get_position_estimate/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account:topic/$aws/device_location/customer_device_id/get_position_estimate/accepted" ] } ] }

/get_position_estimate/rejeté

AWS IoT Core L'emplacement de l'appareil publie une réponse d'erreur à cette rubrique lorsqu'il ne parvient pas à résoudre l'emplacement de l'appareil.

$aws/device_location/customer_device_id/get_position_estimate/rejected

Vous trouverez ci-dessous la charge utile des messages et exemple de politique. Pour plus d'informations sur les erreurs, consultez Résolution des erreurs lors de la résolution de l'emplacement.

Voici un exemple de charge utile du message qui fournit le code d'erreur et le message, qui indiquent pourquoi AWS IoT Core Device Location n'a pas réussi à résoudre les informations de localisation. Si vous avez spécifié un MessageId lorsque vous avez fourni vos données de mesure brutes et que l'emplacement de l' AWS IoT Core appareil n'a pas résolu les informations de localisation, les mêmes MessageId informations seront renvoyées dans la charge utile du message.

{ "errorCode": 500, "errorMessage":"Internal server error", "messageId": "ABCD1" }

Voici un exemple de document de stratégie requise :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account:topicfilter/$aws/device_location/customer_device_id/get_position_estimate/rejected" ] }, { "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account:topic/$aws/device_location/customer_device_id/get_position_estimate/rejected" ] } ] }