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
par votre identifiant unique que vous utilisez pour identifier votre appareil. Nous vous recommandons de spécifier, par exemplecustomer_device_id
WirelessDeviceId
, les appareils for LoRa WAN et Sidewalk
, 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 thingName
get_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 la localisation de l' AWS IoT Core appareil sont les suivantes.
Rubrique | Opérations autorisées | Description |
---|---|---|
$aws/device_location/ |
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/ |
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/ |
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îneTimestamp
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 rubriquesget_position_estimate/accepted
ouget_position_estimate/rejected
contiendra ceMessageId
. La chaîneMessageID
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" ] } ] }