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 en utilisant AWS IoT Core Rubriques MQTT relatives à la localisation des appareils
Vous pouvez utiliser les rubriques MQTT 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 rubriques MQTT relatives à la localisation des appareils
Les rubriques réservées à AWS IoT Core Device Location utilisent le préfixe suivant :
$aws/device_location/{customer_device_id}/
Pour créer une rubrique complète, remplacez par votre identifiant unique que vous utilisez pour identifier votre appareil. Nous vous recommandons de spécifier lecustomer_device_idWirelessDeviceId, par exemple pour les appareils LoRa WAN et Sidewalk, et, si votre appareil est enregistré en tant qu' AWS IoT objet. Vous ajoutez ensuite la rubrique avec le stub de rubrique, tel que thingNameget_position_estimate ou get_position_estimate/accepted comme indiqué dans la section suivante.
Note
Le 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 {customer_device_id}+ générique pour pour obtenir les informations de localisation de vos appareils. Lorsque vous vous abonnez à la rubrique {customer_device_id}$aws/device_location/, 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.+/get_position_estimate/accepted
Les rubriques réservées utilisées pour interagir avec AWS IoT Core Device Location sont les suivantes.
| Rubrique | Opérations autorisées | Description |
|---|---|---|
|
$aws/device_location/ |
Publication |
Un appareil publie dans cette rubrique pour obtenir les données de mesure brutes numérisées à résoudre par AWS IoT Core Device Location. |
|
$aws/device_location/ |
S’abonner |
AWS IoT Core Device Location publie les informations de localisation dans cette rubrique lorsqu'il parvient à résoudre la localisation de l'appareil. |
|
$aws/device_location/ |
S’abonner |
AWS IoT Core Device Location publie les informations d'erreur dans cette rubrique lorsqu'il ne parvient pas à résoudre la localisation de l'appareil. |
Rubriques MQTT relatives à la politique de localisation des appareils
Pour recevoir des messages 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 rubriques 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:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/accepted", "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/accepted", "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/rejected" ] } ] }
Sujets relatifs à la localisation des appareils et charge utile
Les rubriques suivantes présentent les rubriques relatives à la localisation des AWS IoT Core appareils, le format de la charge utile de leurs 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 par AWS IoT Core Device Location.
$aws/device_location/customer_device_id/get_position_estimate
AWS IoT Core Device Location répond en publiant sur l'une /get_position_estimate/accepted ou l'autre des adresses/get_position_estimate/rejected.
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 d'opération de l'API AWS IoT sans fil, GetPositionEstimate. Il contient :
-
Chaîne facultative
Timestamp, qui correspond à la date et à l'heure de résolution de l'emplacement. La chaîneTimestamppeut 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 rubriquesget_position_estimate/acceptedouget_position_estimate/rejectedcontiendra ceMessageId. La chaîneMessageIDpeut 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:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate" ] } ] }
/get_position_estimate/accepted
AWS IoT Core Device Location 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:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/accepted" ] } ] }
/get_position_estimate/rejected
AWS IoT Core Device Location publie une réponse d'erreur à cette rubrique lorsqu'il ne parvient pas à résoudre la localisation 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 indique pourquoi AWS IoT Core Device Location n'a pas réussi à résoudre les informations de localisation. Si vous avez spécifié un MessageId lors de la fourniture de vos données de mesure brutes et que AWS IoT Core Device Location n'a pas réussi à résoudre 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:us-east-1:123456789012:topicfilter/$aws/device_location/device-123/get_position_estimate/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/$aws/device_location/device-123/get_position_estimate/rejected" ] } ] }