Résolution de la localisation des appareils à l'aide des MQTT rubriques de localisation des AWS IoT Core appareils - 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 des appareils à l'aide des MQTT rubriques de localisation des AWS IoT Core appareils

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

Format des MQTT rubriques 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, par exempleWirelessDeviceId, les appareils for LoRa WAN et SidewalkthingName, et de préciser 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.

MQTTSujets relatifs à la localisation des
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/rejeté

S’abonner

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.

Politique relative aux MQTT sujets relatifs à la 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 MQTT sujets.

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 JSON charge utile valide. Si le JSON format du message d'entrée n'est pas 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 d' AWS IoT Wireless APIopération, 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 au JSONformat Geo.

$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 charge utile des messages au format Geo. JSON 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" ] } ] }