

# Configuración de posición de los dispositivos LoRaWAN
<a name="lorawan-location-devices"></a>

Al agregar su dispositivo a AWS IoT Core para LoRaWAN, puede especificar la información de posición estática, activar opcionalmente el posicionamiento y especificar un destino. El destino describe la regla de IoT que procesa la información de posición del dispositivo y enruta la posición actualizada a Amazon Location Service. Después de configurar la posición del dispositivo, los datos de posición se muestran en un mapa de ubicaciones de Amazon con la información de precisión y el destino especificados.

Puede configurar la posición de su dispositivo mediante la Consola de administración de AWS, la API AWS IoT Wireless o la AWS CLI.

## Puertos de marco y formato de los mensajes de enlace ascendente
<a name="lorawan-location-devices-fportuplink"></a>

Si activa el posicionamiento, debe especificar el puerto del marco de geolocalización para comunicar los datos de escaneo por wifi y GNSS del dispositivo a AWS IoT Core para LoRaWAN. La información de posición se comunica a AWS IoT Core para LoRaWAN mediante este puerto de marco.

La especificación LoRaWAN proporciona un campo de entrega de datos (FRMPayload) y un campo de puerto (FPort) para distinguir entre los diferentes tipos de mensajes. Para comunicar la información de posición, puede especificar un valor entre 1 y 223 para el puerto de marco. FPort 0 está reservado para los mensajes MAC, FPort 224 está reservado para las pruebas de conformidad MAC y los puertos 225-255 están reservados para futuras ampliaciones de aplicaciones estandarizadas.

### Mensaje de enlace ascendente de AWS IoT Core para LoRaWAN al motor de reglas
<a name="lorawan-location-devices-uplink"></a>

Cuando se agrega un destino, se crea una regla de AWS IoT para enrutar los datos a Amazon Location Service mediante el motor de reglas. A continuación, la información de posición actualizada se muestra en un mapa de ubicaciones de Amazon. Si no ha activado el posicionamiento, el destino envía los datos de posición al actualizarse las coordenadas de posición estáticas del dispositivo.

El siguiente código muestra el formato del mensaje de enlace ascendente enviado desde AWS IoT Core para LoRaWAN con la información de posición, la precisión, la configuración del solucionador y los metadatos inalámbricos. Los campos resaltados a continuación son opcionales. Si no hay información de precisión vertical, el valor es `null`.

```
{
    // Position configuration parameters for given wireless device
    "WirelessDeviceId": "5b58245e-146c-4c30-9703-0ca942e3ff35",     

    // Position information for a device in GeoJSON format. Altitude
    // is optional. If no vertical accuracy information is available
    // or positioning isn't activated, the value is set to null.
    // The position information coordinates are listed in the order 
    // [longitude, latitude, altitude].
    "coordinates": [33.33000183105469, -22.219999313354492, 99.0],
    "type": "Point",
    "properties": { 
         "horizontalAccuracy": number,
         "verticalAccuracy": number",
         "timestamp": "2022-08-19T03:08:35.061Z"
    },

    //Parameters controlled by AWS IoT Core para LoRaWAN
    "WirelessMetadata": 
    {
        "LoRaWAN":
        {
            "ADR": false,
            "Bandwidth": 125,
            "ClassB": false,
            "CodeRate": "4/5",
            "DataRate": "0",
            "DevAddr": "00b96cd4",
            "DevEui": "58a0cb000202c99",            
            "FOptLen": 2,
            "FCnt": 1,
            "Fport": 136,   
            "Frequency": "868100000",     
            "Gateways": [
             {
                    "GatewayEui": "80029cfffe5cf1cc",      
                    "Snr": -29,
                    "Rssi": 9.75
             }
             ],  
            "MIC": "7255cb07",  
            "MType": "UnconfirmedDataUp",
            "Major": "LoRaWANR1",
            "Modulation": "LORA", 
            "PolarizationInversion": false,    
            "SpreadingFactor": 12,                         
            "Timestamp": "2021-05-03T03:24:29Z"
            
        }
    }
}
```

## Configuración de la posición de los dispositivos mediante la consola
<a name="lorawan-location-devices-console"></a>

Para configurar y administrar la posición de sus dispositivos mediante la Consola de administración de AWS, primero inicie sesión en la consola y luego vaya a la página central [https://console.aws.amazon.com/iot/home#/wireless/devices](https://console.aws.amazon.com/iot/home#/wireless/devices) de la consola de AWS IoT.

**Agregar la información de posición**  
Para agregar la información de posición a su dispositivo:

1. En la página central de ** Dispositivos**, seleccione **Agregar dispositivo inalámbrico**.

1. Introduzca la especificación del dispositivo inalámbrico, los perfiles de dispositivo y servicio, y el destino que define la regla de IoT para enrutar los datos a otros Servicio de AWS. Para obtener más información, consulte [Incorporar dispositivos a AWS IoT Core para LoRaWAN](lorawan-onboard-end-devices.md).

1. Introduzca la información de posición, active la geolocalización si lo desea y especifique el destino de los datos de posición que desee utilizar para enrutar los mensajes.
   + 

**Información de posición**  
Especifique los datos de posición del dispositivo mediante las coordenadas de latitud y longitud y una coordenada de altitud opcional. La información de posición se basa en el sistema de coordenadas WGS84.
   + 

**Geolocalización**  
Active el posicionamiento si desea que AWS IoT Core para LoRaWAN utilice la geolocalización para calcular la posición del dispositivo. Utiliza solucionadores GNSS y Wi-Fi de terceros para identificar la posición de su dispositivo en tiempo real. 

     Para introducir la información de geolocalización, seleccione **Activar posicionamiento** e introduzca el puerto del marco de geolocalización al que se comunican los datos escaneados por GNSS y wifi a AWS IoT Core para LoRaWAN. Verá los puertos FPorts predeterminados cumplimentados como referencia. Sin embargo, puede elegir un valor diferente entre 1 y 223.
   + 

**Destino de los datos de posición**  
Elija un destino para describir la regla de AWS IoT que procesa los datos de posición del dispositivo y los reenvía a AWS IoT Core para LoRaWAN. Utilice este destino solo para enrutar los datos de posición. Debe ser diferente del destino que utiliza para enrutar los datos del dispositivo a otros Servicio de AWS.

**Ver la configuración de posición del dispositivo**  
Después de configurar la posición de su dispositivo, AWS IoT Core para LoRaWAN crea un mapa de ubicaciones de Amazon llamado `iotwireless.map`. Puede ver este mapa en la página de detalles de su dispositivo, en la pestaña **Posición**. En función de las coordenadas de posición que haya especificado o de la posición calculada por los solucionadores de terceros, la posición de su dispositivo se mostrará como un marcador en el mapa. Puede acercar o alejar la imagen para ver claramente la posición de su dispositivo en el mapa. En la página de detalles del dispositivo, en la pestaña **Posición**, también verá la información de precisión, la marca temporal en la que se determinó la posición del dispositivo y el destino de los datos de posición que se especificaron.

**nota**  
Si no ha activado los mapas de Amazon Location Service, verá un mensaje indicándole que tendrá que utilizar Amazon Location Service para acceder al mapa y ver la posición. Si utiliza los mapas de Amazon Location Service, se le cobrarán cargos adicionales en su Cuenta de AWS. Para más información, consulte [Precios de AWS IoT Core](https://aws.amazon.com/iot-core/pricing/).

El mapa, `iotwireless.map`, actúa como un origen de datos cartográficos a los que se accede mediante operaciones de la API `Get`, como [https://docs.aws.amazon.com/location-maps/latest/APIReference/API_GetMapTile.html](https://docs.aws.amazon.com/location-maps/latest/APIReference/API_GetMapTile.html). Para obtener información sobre las API `Get` que se utilizan con los mapas, consulte la [Referencia de API de Amazon Location Service](https://docs.aws.amazon.com/location-maps/latest/APIReference/Welcome.html).

Para obtener información adicional sobre este mapa, vaya a la consola de Amazon Location Service, elija **maps** y, a continuación, elija [iotwireless.map](https://console.aws.amazon.com/location/maps/home#/describe/iotwireless.map). Para obtener más información, consulte la sección [Mapas](https://docs.aws.amazon.com/location/latest/developerguide/map-concepts.html) en la *Guía para desarrolladores de Amazon Location Service*.

**Actualizar la configuración de posición del dispositivo**  
Para cambiar la configuración de posición del dispositivo, en la página de detalles del dispositivo, elija **Editar** y, a continuación, actualice la información de posición, cualquier configuración de geolocalización y el destino.

**nota**  
La información sobre los datos históricos de posición no está disponible. Al actualizar las coordenadas de posición del dispositivo, se sobrescriben los datos de posición registrados anteriormente. Una vez que haya actualizado la posición, en la pestaña **Posición** de los detalles del dispositivo verá la información de la nueva posición. El cambio en la marca temporal indica que corresponde a la última posición conocida del dispositivo.

## Configurar la posición del dispositivo mediante la API
<a name="lorawan-location-devices-api"></a>

Puede especificar la información de posición, configurar la posición del dispositivo y activar la geolocalización opcional mediante la API AWS IoT Wireless o la AWS CLI.

**importante**  
Las acciones de la API [UpdatePosition](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdatePosition.html), [GetPosition](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetPosition.html), [PutPositionConfiguration](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_PutPositionConfiguration.html), [GetPositionConfiguration](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetPositionConfiguration.html) y [ListPositionConfigurations](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListPositionConfigurations.html) ya no se admiten. En su lugar, las llamadas para actualizar y recuperar la información de posición deberían utilizar las operaciones de la API [GetResourcePosition](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetResourcePosition.html) y [UpdateResourcePosition](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateResourcePosition.html).

### Agregar la información y la configuración de posición
<a name="lorawan-location-devices-api-add"></a>

Para agregar la información de posición de un dispositivo inalámbrico determinado, especifique las coordenadas mediante la operación de la API [UpdateResourcePosition](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateResourcePosition.html) o el comando de la CLI [update-resource-position](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/update-resource-position.html). Especifique `WirelessDevice` como `ResourceType`, el ID del dispositivo inalámbrico que se va a actualizar como `ResourceIdentifier` y la información de posición como carga de GeoJSON.

```
aws iotwireless update-resource-position \ 
    --resource-type WirelessDevice \ 
    --resource-id "1ffd32c8-8130-4194-96df-622f072a315f" \ 
    --position [33.33, -33.33, 10.0]
```

A continuación se muestra el contenido del archivo `deviceposition.json`. Para especificar los valores de FPort y enviar los datos de geolocalización, utilice el objeto de [posicionamiento](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_Positioning.html) con las operaciones de la API [CreateWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessDevice.html) and [UpdateWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateWirelessDevice.html).

**Contenido de deviceposition.json**

```
{ 
     "type": "Point",
     "coordinates": [33.3318, -22.2155, 13.123],
     "properties": {
          "verticalAccuracy": 707,
          "horizontalAccuracy": 
          "timestamp": "2018-11-30T18:35:24Z"
      }
}
```

Este comando no proporciona ningún resultado. Para ver la información de posición especificada, utilice la operación de la API `GetResourcePosition`.

### Obtener la información y la configuración de posición
<a name="lorawan-location-devices-api-get"></a>

Para obtener la información de posición de un dispositivo inalámbrico determinado, utilice la API [GetResourcePosition](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetResourcePosition.html) o el comando de la CLI [get-resource-position](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-resource-position.html). Especifique `WirelessDevice` como `resourceType` y proporcione el ID del dispositivo inalámbrico como `resourceIdentifier`

```
aws iotwireless get-resource-position \ 
    --resource-type WirelessDevice \ 
    --resource-id "1ffd32c8-8130-4194-96df-622f072a315f"
```

Al ejecutar este comando, se muestra la información de posición del dispositivo inalámbrico como una carga de GeoJSON. Verá información sobre las coordenadas de posición, el tipo de ubicación y las propiedades, que puede incluir la información de precisión y la marca temporal que corresponde a la última posición conocida del dispositivo.

```
{ 
     "type": "Point",
     "coordinates": [33.3318, -22.2155, 13.123],
     "properties": {
          "verticalAccuracy": 707,
          "horizontalAccuracy": 389,
          "horizontalConfidenceLevel": 0.68,
          "verticalConfidenceLevel": 0.68,
          "timestamp": "2018-11-30T18:35:24Z"
      }
}
```