

# Configurazione della posizione dei dispositivi LoRaWAN
<a name="lorawan-location-devices"></a>

Quando si aggiunge il dispositivo a AWS IoT Core per LoRaWAN, è possibile specificare le informazioni sulla posizione statica, attivare facoltativamente il posizionamento e specificare una destinazione. La destinazione descrive la regola IoT che elabora le informazioni sulla posizione del dispositivo e instrada la posizione aggiornata al servizio di posizione Amazon. Dopo aver configurato la posizione del dispositivo, i dati sulla posizione vengono visualizzati su una mappa di posizioni di Amazon con le informazioni sulla precisione e la destinazione specificata.

Puoi configurare la posizione del dispositivo utilizzando la Console di gestione AWS, l'API Wireless AWS IoT o la AWS CLI.

## Porte di frame e formato dei messaggi di uplink
<a name="lorawan-location-devices-fportuplink"></a>

Se si attiva il posizionamento, è necessario specificare la porta di frame di geolocalizzazione per comunicare i dati di scansione Wi-Fi e GNSS dal dispositivo a AWS IoT Core per LoRaWAN. Le informazioni sulla posizione vengono comunicate a AWS IoT Core per LoRaWAN tramite la porta di frame.

La specifica LoRaWAN fornisce un campo di consegna dati (FRMPayload) e un campo Port (FPort) per distinguere tra diversi tipi di messaggi. Per comunicare le informazioni sulla posizione, per la porta di frame è possibile specificare un valore qualsiasi compreso tra 1 e 223. FPort 0 è riservato ai messaggi MAC, FPort 224 è riservato ai test di conformità MAC e le porte 225-255 sono riservate per future estensioni di applicazioni standardizzate.

### Messaggio di uplink da AWS IoT Core per LoRaWAN a motore delle regole
<a name="lorawan-location-devices-uplink"></a>

Quando aggiungi una destinazione, viene creata una regola AWS IoT per instradare i dati al servizio di posizione Amazon utilizzando il motore delle regole. Le informazioni aggiornate sulla posizione vengono quindi visualizzate su una mappa delle posizioni Amazon. Se il posizionamento non è stato attivato, la destinazione instrada i dati sulla posizione quando si aggiornano le coordinate di posizione statiche del dispositivo.

Il seguente codice mostra il formato del messaggio di uplink inviato da AWS IoT Core per LoRaWAN con le informazioni sulla posizione, la precisione, la configurazione del risolutore e i metadati wireless. I campi evidenziati di seguito sono facoltativi. Se non sono disponibili informazioni sulla precisione verticale, il valore è `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 per 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"
            
        }
    }
}
```

## Configurazione della posizione dei dispositivi tramite la console
<a name="lorawan-location-devices-console"></a>

Per configurare e gestire la posizione dei dispositivi tramite la Console di gestione AWS, accedere innanzitutto alla console quindi passare alla pagina hub [https://console.aws.amazon.com/iot/home#/wireless/devices](https://console.aws.amazon.com/iot/home#/wireless/devices) (Dispositivi) della console AWS IoT.

**Aggiunta di informazioni sulla posizione**  
Per aggiungere informazioni sulla posizione per il dispositivo:

1. Nella pagina hub **Devices** (Dispositivi), scegli **Add wireless device** (Aggiungi dispositivo wireless).

1. Immetti le specifiche del dispositivo wireless, i profili di dispositivo e servizio e la destinazione che definisce la regola IoT per l'instradamento dei dati a un altro Servizio AWS. Per ulteriori informazioni, consultare [Integra i tuoi dispositivi su AWS IoT Core per LoRaWAN](lorawan-onboard-end-devices.md).

1. Immetti le informazioni sulla posizione, attiva facoltativamente la geolocalizzazione e specifica una destinazione dei dati sulla posizione che desideri utilizzare per instradare i messaggi.
   + 

**Informazioni sulla posizione**  
Specifica i dati sulla posizione per il dispositivo utilizzando le coordinate di latitudine e longitudine e una coordinata di altitudine facoltativa. Le informazioni sulla posizione si basano sul sistema di coordinate WGS84.
   + 

**GeoLocation**  
Attiva il posizionamento se desideri che AWS IoT Core per LoRaWAN utilizzi la geolocalizzazione per calcolare la posizione del dispositivo. I risolutori GNSS e Wi-Fi di terze parti vengono utilizzati per identificare la posizione del dispositivo in tempo reale. 

     Per inserire le informazioni di geolocalizzazione, scegli **Attiva posizionamento** e inserisci la porta di frame di geolocalizzazione per comunicare i dati di scansione GNSS e Wi-Fi a AWS IoT Core per LoRaWAN. Come riferimento, sono già inseriti i valori di FPort predefiniti. Tuttavia, puoi scegliere un valore diverso compreso tra 1 e 223.
   + 

**Destinazione dei dati sulla posizione**  
Scegli una destinazione per descrivere la regola AWS IoT che elabora i dati sulla posizione del dispositivo e invia la posizione aggiornata a AWS IoT Core per LoRaWAN. Utilizza questa destinazione solo per instradare i dati sulla posizione. Deve essere diversa dalla destinazione utilizzata per l'instradamento dei dati del dispositivo ad altri Servizio AWS.

**Visualizzazione della configurazione della posizione del dispositivo**  
Dopo aver configurato la posizione del dispositivo, AWS IoT Core per LoRaWAN crea una mappa delle posizioni Amazon chiamata `iotwireless.map`. Questa mappa è presente sulla pagina dei dettagli del tuo dispositivo nella scheda **Position** (Posizione). In base alle coordinate di posizione specificate o alla posizione calcolata dai risolutori di terze parti, la posizione del dispositivo verrà visualizzata come un contrassegno sulla mappa. Puoi ingrandire o rimpicciolire la mappa per visualizzare chiaramente la posizione del tuo dispositivo. Nella pagina dei dettagli del dispositivo, nella scheda **Position** (Posizione), vedrai anche le informazioni sulla precisione, il timestamp in cui è stata determinata la posizione del dispositivo e la destinazione dei dati sulla posizione che hai specificato.

**Nota**  
Se non hai attivato le mappe del servizio di posizione Amazon, sarà visualizzato un messaggio che indica che è necessario utilizzare il servizio di posizione Amazon per accedere alla mappa e visualizzare la posizione. L'utilizzo di mappe del servizio di posizione Amazon può comportare addebiti aggiuntivi al tuo Account AWS. Per ulteriori informazioni, consultare [Prezzi di AWS IoT Core](https://aws.amazon.com/iot-core/pricing/).

La mappa, `iotwireless.map`, funge da fonte di dati cartografici a cui si accede tramite operazioni API `Get`, ad esempio [https://docs.aws.amazon.com/location-maps/latest/APIReference/API_GetMapTile.html](https://docs.aws.amazon.com/location-maps/latest/APIReference/API_GetMapTile.html). Per informazioni sulle API `Get` utilizzate con le mappe, consulta [Amazon Location Service API reference](https://docs.aws.amazon.com/location-maps/latest/APIReference/Welcome.html) (Documentazione di riferimento delle API del servizio di posizione Amazon).

Per ulteriori dettagli su questa mappa, vai alla console del servizio di posizione Amazon, scegli **maps** (mappe) quindi seleziona [iotwireless.map](https://console.aws.amazon.com/location/maps/home#/describe/iotwireless.map). Per ulteriori informazioni, consultare [Mappe](https://docs.aws.amazon.com/location/latest/developerguide/map-concepts.html) nella *Guida per gli sviluppatori del servizio di posizione Amazon*.

**Aggiornamento della configurazione della posizione del dispositivo**  
Per modificare la configurazione della posizione del dispositivo, nella pagina dei dettagli del dispositivo, scegli **Edit** (Modifica), quindi aggiorna le informazioni sulla posizione, eventuali impostazioni di geolocalizzazione e la destinazione.

**Nota**  
Le informazioni sui dati storici della posizione non sono disponibili. Quando aggiorni le coordinate di posizione del dispositivo, i dati sulla posizione riportati in precedenza vengono sovrascritti. Dopo aver aggiornato la posizione, nella scheda **Position** (Posizione) dei dettagli del dispositivo, vedrai le nuove informazioni sulla posizione. Una modifica del timestamp indica che corrisponde all'ultima posizione nota del dispositivo.

## Configurazione della posizione del dispositivo tramite l'API
<a name="lorawan-location-devices-api"></a>

Puoi specificare le informazioni sulla posizione, configurare la posizione del dispositivo e attivare la geolocalizzazione facoltativa mediante l'API Wireless AWS IoT o la AWS CLI.

**Importante**  
Le operazioni 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) e [ListPositionConfigurations](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListPositionConfigurations.html) non sono più supportate. Le chiamate per aggiornare e recuperare le informazioni sulla posizione devono utilizzare le operazioni API [GetResourcePosition](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetResourcePosition.html) e [UpdateResourcePosition](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateResourcePosition.html).

### Aggiunta di informazioni sulla posizione e configurazione
<a name="lorawan-location-devices-api-add"></a>

Per aggiungere le informazioni sulla posizione per un determinato dispositivo wireless, specificare le coordinate utilizzando l'operazione API [UpdateResourcePosition](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateResourcePosition.html) o il comando [update-resource-position](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/update-resource-position.html) della CLI. Specificare `WirelessDevice` come `ResourceType`, l'ID del dispositivo wireless da aggiornare come `ResourceIdentifier` e le informazioni sulla posizione.

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

Nell'esempio seguente viene mostrato il contenuto del file `deviceposition.json`. Per specificare i valori FPort per l'invio dei dati di geolocalizzazione, utilizzare l'oggetto [Positioning](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_Positioning.html) (Posizionamento) con le operazioni API [CreateWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessDevice.html) e [UpdateWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateWirelessDevice.html).

**Contenuto di deviceposition.json**

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

L'esecuzione di questo comando non produce output. Per visualizzare le informazioni sulla posizione specificate, utilizzare l'operazione API `GetResourcePosition`.

### Ottenimento delle informazioni su posizione e configurazione
<a name="lorawan-location-devices-api-get"></a>

Per ottenere le informazioni sulla posizione per un determinato dispositivo wireless, utilizzare l'API [GetResourcePosition](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetResourcePosition.html) o il comando [get-resource-position](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-resource-position.html) della CLI. Specifica `WirelessDevice` come `resourceType` e immetti l'ID del dispositivo wireless come `resourceIdentifier`.

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

L'esecuzione di questo comando visualizza le informazioni sulla posizione del dispositivo wireless come un payload GeoJSON. Saranno visualizzate le informazioni sulle coordinate della posizione, il tipo di posizione e le proprietà che includono le informazioni sulla precisione e il timestamp che corrisponde all'ultima posizione nota 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"
      }
}
```