

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Definite le proprietà dei dati


*Le proprietà degli asset* sono le strutture all'interno di ogni asset che contengono i dati degli asset. Esistono vari tipi di proprietà:
+ **Attributi**: proprietà generalmente statiche di una risorsa, come il produttore del dispositivo o l'area geografica. Per ulteriori informazioni, consulta [Definisci dati statici (attributi)](attributes.md).
+ **Misurazioni**: i flussi di dati dei sensori del dispositivo raw di un asset, come i valori della velocità di rotazione con data e ora o i valori di temperatura con data e ora in gradi Celsius. Una misurazione è definita da un alias del flusso di dati. Per ulteriori informazioni, consulta [Definisci i flussi di dati provenienti dalle apparecchiature (misurazioni)](measurements.md).
+ **Trasformazioni**: i valori delle serie temporali trasformati di una risorsa, come i valori di temperatura con data e ora in gradi Fahrenheit. Una trasformazione è definita da un'espressione con le sue variabili. Per ulteriori informazioni, consulta [Trasforma i dati (trasformazioni)](transforms.md).
+ **Metriche: i** dati di una risorsa aggregati in un intervallo di tempo specificato, ad esempio la temperatura media oraria. Un parametro è definito da un intervallo di tempo e un'espressione con le sue variabili. Le espressioni metriche possono inserire le proprietà metriche degli asset associati, in modo da poter calcolare le metriche che rappresentano l'operazione o un sottoinsieme dell'operazione. Per ulteriori informazioni, consulta [Aggrega i dati provenienti da proprietà e altre risorse (metriche)](metrics.md).

Per ulteriori informazioni, consulta [Crea modelli di asset in AWS IoT SiteWise](create-asset-models.md).

Per un esempio di come utilizzare misurazioni, trasformazioni e parametri per calcolare l'efficienza complessiva delle apparecchiature (OEE), consulta [Calcola l'OEE in AWS IoT SiteWise](calculate-oee.md).

**Topics**
+ [

# Definisci dati statici (attributi)
](attributes.md)
+ [

# Definisci i flussi di dati provenienti dalle apparecchiature (misurazioni)
](measurements.md)
+ [

# Trasforma i dati (trasformazioni)
](transforms.md)
+ [

# Aggrega i dati provenienti da proprietà e altre risorse (metriche)
](metrics.md)
+ [

# Usa espressioni di formule
](formula-expressions.md)

# Definisci dati statici (attributi)
Definire dati statici

*Gli attributi delle risorse* rappresentano informazioni generalmente statiche, come il produttore del dispositivo o la posizione geografica. Ogni asset include gli attributi del modello da cui è stato creato.

**Topics**
+ [

## Definire gli attributi (console)
](#define-attributes-console)
+ [

## Definisci gli attributi ()AWS CLI
](#define-attributes-cli)

## Definire gli attributi (console)


Quando si definisce un attributo per un modello di asset nella AWS IoT SiteWise console, si specificano i seguenti parametri:
+ <a name="asset-property-name-console"></a>**Nome**: il nome della proprietà.
+ **Valore predefinito**: (Facoltativo) Il valore predefinito per questo attributo. Gli asset creati dal modello hanno questo valore per l'attributo. Per ulteriori informazioni su come sostituire il valore predefinito in un asset creato da un modello, consulta [Aggiorna i valori degli attributi](update-attribute-values.md).
+ <a name="asset-property-data-type-console"></a>**Tipo di dati**: il tipo di dati della proprietà, che è uno dei seguenti:
  + **String**: una stringa con un massimo di 1024 byte.
  + **Numero intero: un numero intero** con segno a 32 bit con intervallo [-2.147.483.648, 2.147.483.647].
  + **Doppio**: un numero in virgola mobile con intervallo [-10^100, 10^100] e precisione doppia IEEE 754.
  + **`false`Booleano — `true` o.**
+ **ID esterno**: (Facoltativo) Si tratta di un ID definito dall'utente. Per ulteriori informazioni, consulta [Oggetti di riferimento con oggetti esterni IDs](object-ids.md#external-id-references) nella *Guida per l'utente di AWS IoT SiteWise *.

Per ulteriori informazioni, consulta [Create un modello di asset (console)](create-asset-models.md#create-asset-model-console).

## Definisci gli attributi ()AWS CLI


Quando definite un attributo per un modello di asset con l' AWS IoT SiteWise API, specificate i seguenti parametri:
+ <a name="asset-property-name-cli"></a>`name`— Il nome della proprietà.
+ `defaultValue`— (Facoltativo) Il valore predefinito per questo attributo. Gli asset creati dal modello hanno questo valore per l'attributo. Per ulteriori informazioni su come sostituire il valore predefinito in un asset creato da un modello, consulta [Aggiorna i valori degli attributi](update-attribute-values.md).
+ <a name="asset-property-data-type-cli"></a>`dataType`— Il tipo di dati della proprietà, che è uno dei seguenti:
  + `STRING`— Una stringa con un massimo di 1024 byte.
  + `INTEGER`— Un numero intero con segno a 32 bit con intervallo [-2.147.483.648, 2.147.483.647].
  + `DOUBLE`— Un numero in virgola mobile con intervallo [-10^100, 10^100] e precisione doppia IEEE 754.
  + `BOOLEAN`— `true` oppure. `false`
+ `externalId`— (Facoltativo) Si tratta di un ID definito dall'utente. Per ulteriori informazioni, consulta [Oggetti di riferimento con oggetti esterni IDs](object-ids.md#external-id-references) nella *Guida per l'utente di AWS IoT SiteWise *.

**Example Definizione di attributo di esempio**  
Nell'esempio seguente viene illustrato un attributo che rappresenta il numero di modello di un asset con un valore predefinito. Questo oggetto è un esempio di un oggetto [AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html)che contiene un [attributo](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Attribute.html). Puoi specificare questo oggetto come parte del payload della richiesta [CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) per creare una proprietà dell'attributo. Per ulteriori informazioni, consulta [Crea un modello di asset (AWS CLI)](create-asset-models.md#create-asset-model-cli).  

```
{
...
"assetModelProperties": [
{
  "name": "Model number",
  "dataType": "STRING",
  "type": {
    "attribute": {
      "defaultValue": "BLT123"
    }
  }
}
],
...
}
```

# Definisci i flussi di dati provenienti dalle apparecchiature (misurazioni)
Definire i flussi di dati provenienti dalle apparecchiature (misurazione)

Una *misurazione* rappresenta il flusso di dati grezzi del sensore di un dispositivo, ad esempio valori di temperatura con data e ora o valori di rotazioni al minuto (RPM).

**Topics**
+ [

## Definisci le misurazioni (console)
](#define-measurements-console)
+ [

## Definisci le misurazioni ()AWS CLI
](#define-measurements-cli)

## Definisci le misurazioni (console)


Quando definite una misurazione per un modello di asset nella AWS IoT SiteWise console, specificate i seguenti parametri:
+ <a name="asset-property-name-console"></a>**Nome**: il nome della proprietà.
+ <a name="asset-property-unit-console"></a>**Unità** — (Facoltativo) L'unità scientifica della proprietà, ad esempio mm o Celsius.
+ <a name="asset-property-data-type-console"></a>**Tipo di dati**: il tipo di dati della proprietà, che è uno dei seguenti:
  + **String**: una stringa con un massimo di 1024 byte.
  + **Numero intero: un numero intero** con segno a 32 bit con intervallo [-2.147.483.648, 2.147.483.647].
  + **Doppio**: un numero in virgola mobile con intervallo [-10^100, 10^100] e precisione doppia IEEE 754.
  + **`false`Booleano — `true` o.**
+ **ID esterno**: (Facoltativo) Si tratta di un ID definito dall'utente. Per ulteriori informazioni, consulta [Oggetti di riferimento con oggetti esterni IDs](object-ids.md#external-id-references) nella *Guida per l'utente di AWS IoT SiteWise *.

Per ulteriori informazioni, consulta [Create un modello di asset (console)](create-asset-models.md#create-asset-model-console).

## Definisci le misurazioni ()AWS CLI


Quando definite una misurazione per un modello di asset con l' AWS IoT SiteWise API, specificate i seguenti parametri:
+ <a name="asset-property-name-cli"></a>`name`— Il nome della proprietà.
+ <a name="asset-property-data-type-cli"></a>`dataType`— Il tipo di dati della proprietà, che è uno dei seguenti:
  + `STRING`— Una stringa con un massimo di 1024 byte.
  + `INTEGER`— Un numero intero con segno a 32 bit con intervallo [-2.147.483.648, 2.147.483.647].
  + `DOUBLE`— Un numero in virgola mobile con intervallo [-10^100, 10^100] e precisione doppia IEEE 754.
  + `BOOLEAN`— `true` oppure. `false`
+ <a name="asset-property-unit-cli"></a>`unit`— (Facoltativo) L'unità scientifica della proprietà, ad esempio mm o Celsius.
+ `externalId`— (Facoltativo) Si tratta di un ID definito dall'utente. Per ulteriori informazioni, consulta [Oggetti di riferimento con oggetti esterni IDs](object-ids.md#external-id-references) nella *Guida per l'utente di AWS IoT SiteWise *.

**Example Definizione di misurazione di esempio**  
Nell'esempio seguente viene illustrata una misurazione che rappresenta le letture del sensore di temperatura di un asset. Questo oggetto è un esempio di un oggetto [AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html)che contiene una [misurazione](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Measurement.html). Puoi specificare questo oggetto come parte del payload della richiesta [CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) per creare una proprietà di misurazione. Per ulteriori informazioni, consulta [Crea un modello di asset (AWS CLI)](create-asset-models.md#create-asset-model-cli).  
La struttura [di misurazione](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Measurement.html) è una struttura vuota quando si definisce un modello di asset perché successivamente si configura ogni risorsa per utilizzare flussi di dati di dispositivo unici. Per ulteriori informazioni su come collegare la proprietà di misurazione di un asset al flusso di dati dei sensori di un dispositivo, consulta[Gestisci i flussi di dati per AWS IoT SiteWise](manage-data-streams.md).  

```
{
      ...
      "assetModelProperties": [
      {
          "name": "Temperature C",
          "dataType": "DOUBLE",
          "type": {
              "measurement": {}
          },
          "unit": "Celsius"
      }
  ],
      ...
}
```

# Trasforma i dati (trasformazioni)
Trasforma i dati (trasformazioni)

Le *trasformazioni* sono espressioni matematiche che mappano i punti dati delle proprietà degli asset da un modulo all'altro. Un'espressione di trasformazione è costituita da variabili di proprietà degli asset, valori letterali, operatori e funzioni. I punti dati trasformati mantengono una one-to-one relazione con i punti dati di input. AWS IoT SiteWise calcola un nuovo punto dati trasformato ogni volta che una delle proprietà di input riceve un nuovo punto dati.

**Nota**  
Per gli aggiornamenti delle proprietà con lo stesso timestamp, i valori di output possono essere sovrascritti dagli aggiornamenti di altre proprietà in entrata.

Ad esempio, se l'asset ha un flusso di misurazione della temperatura denominato `Temperature_C` con unità in Celsius, è possibile convertire ogni punto dati in Fahrenheit con la formula `Temperature_F = 9/5 * Temperature_C + 32`. Ogni volta AWS IoT SiteWise che riceve un punto dati nel flusso `Temperature_C` di misurazione, il `Temperature_F` valore corrispondente viene calcolato in pochi secondi e disponibile come proprietà. `Temperature_F`

Se la trasformazione contiene più di una variabile, il punto dati che arriva prima avvia immediatamente il calcolo. Consideriamo un esempio in cui un produttore di componenti utilizza una trasformazione per monitorare la qualità del prodotto. Utilizzando uno standard diverso in base al tipo di parte, il produttore utilizza le seguenti misurazioni per rappresentare il processo:
+ `Part_Number`- Una stringa che identifica il tipo di parte.
+ `Good_Count`- Un numero intero che aumenta di uno se la parte soddisfa lo standard.
+ `Bad_Count`- Un numero intero che aumenta di uno se la parte non soddisfa lo standard.

Il produttore crea anche una trasformazione`Quality_Monitor`, che è uguale ` if(eq(Part_Number, "BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")` a.

Questa trasformazione monitora la percentuale di parti difettose prodotte per un tipo di parte specifico. Se il numero di parte è BLT123 e la percentuale di parti difettose supera il 10 percento (0,1), la trasformazione viene restituita. `"Caution"` In caso contrario, la trasformazione viene `"Normal"` restituita.

**Nota**  
Se `Part_Number` riceve un nuovo punto dati prima di altre misurazioni, la `Quality_Monitor` trasformazione utilizza il nuovo `Part_Number` valore e i `Bad_Count` valori `Good_Count` e più recenti. Per evitare errori, `Good_Count` reimpostatelo `Bad_Count` prima del successivo ciclo di produzione.
Utilizzate [le metriche](metrics.md) se desiderate valutare le espressioni solo dopo che tutte le variabili hanno ricevuto nuovi punti dati.

**Topics**
+ [

## Definisci le trasformazioni (console)
](#define-transforms-console)
+ [

## Definisci le trasformazioni ()AWS CLI
](#define-transform-cli)

## Definisci le trasformazioni (console)


Quando definite una trasformazione per un modello di asset nella AWS IoT SiteWise console, specificate i seguenti parametri:
+ <a name="asset-property-name-console"></a>**Nome**: il nome della proprietà.
+ <a name="asset-property-unit-console"></a>**Unità** — (Facoltativo) L'unità scientifica della proprietà, ad esempio mm o Celsius.
+ **Tipo di dati**: il tipo di dati della trasformazione, che può essere **Double** o **String**.
+ **ID esterno**: (Facoltativo) Si tratta di un ID definito dall'utente. Per ulteriori informazioni, consulta [Oggetti di riferimento con oggetti esterni IDs](object-ids.md#external-id-references) nella *Guida per l'utente di AWS IoT SiteWise *.
+ **Formula**: l'espressione di trasformazione. Le espressioni di trasformazione non possono utilizzare funzioni di aggregazione o funzioni temporali. Per aprire la funzione di completamento automatico, inizia a digitare o premi il tasto freccia giù. Per ulteriori informazioni, consulta [Usa espressioni di formule](formula-expressions.md).
**Importante**  <a name="transform-input-rules"></a>
Le trasformazioni possono immettere proprietà di tipo intero, doppio, booleano o stringa. I valori booleani vengono convertiti in `0` (false) e (true). `1`  
Le trasformazioni devono inserire una o più proprietà che non sono attributi e un numero qualsiasi di proprietà degli attributi. AWS IoT SiteWise calcola un nuovo punto dati trasformato ogni volta che la proprietà di input che non è un attributo riceve un nuovo punto dati. I nuovi valori degli attributi non avviano gli aggiornamenti delle trasformazioni. La stessa frequenza di richiesta per le operazioni API relative ai dati delle proprietà degli asset si applica ai risultati del calcolo delle trasformazioni.  
<a name="formula-output-rules"></a>Le espressioni delle formule possono generare solo valori doppi o stringhe. Le espressioni annidate possono generare altri tipi di dati, ad esempio stringhe, ma la formula nel suo insieme deve restituire un numero o una stringa. È possibile utilizzare la [funzione jp](expression-string-functions.md#jp-definition) per convertire una stringa in un numero. Il valore booleano deve essere 1 (vero) o 0 (falso). Per ulteriori informazioni, consulta [Valori indefiniti, infiniti e di overflow](expression-tutorials.md#undefined-values).

Per ulteriori informazioni, consulta [Create un modello di asset (console)](create-asset-models.md#create-asset-model-console).

## Definisci le trasformazioni ()AWS CLI


Quando definite una trasformazione per un modello di asset con l' AWS IoT SiteWise API, specificate i seguenti parametri:
+ <a name="asset-property-name-cli"></a>`name`— Il nome della proprietà.
+ <a name="asset-property-unit-cli"></a>`unit`— (Facoltativo) L'unità scientifica della proprietà, ad esempio mm o Celsius.
+ `dataType`— Il tipo di dati della trasformazione, che deve essere `DOUBLE` o`STRING`.
+ `externalId`— (Facoltativo) Si tratta di un ID definito dall'utente. Per ulteriori informazioni, consulta [Oggetti di riferimento con oggetti esterni IDs](object-ids.md#external-id-references) nella *Guida per l'utente di AWS IoT SiteWise *.
+ `expression`— L'espressione di trasformazione. Le espressioni di trasformazione non possono utilizzare funzioni di aggregazione o funzioni temporali. Per ulteriori informazioni, consulta [Usa espressioni di formule](formula-expressions.md).
+ `variables`— L'elenco di variabili che definisce le altre proprietà della risorsa da utilizzare nell'espressione. Ogni struttura di variabile contiene un nome semplice da utilizzare nell'espressione e una struttura `value` che specifica la proprietà da collegare alla variabile stessa. La struttura `value` contiene le seguenti informazioni:
  + `propertyId`— L'ID della proprietà da cui immettere i valori. È possibile utilizzare il nome della proprietà anziché il relativo ID.
**Importante**  <a name="transform-input-rules"></a>
Le trasformazioni possono immettere proprietà di tipo intero, doppio, booleano o stringa. I valori booleani vengono convertiti in `0` (false) e (true). `1`  
Le trasformazioni devono inserire una o più proprietà che non sono attributi e un numero qualsiasi di proprietà degli attributi. AWS IoT SiteWise calcola un nuovo punto dati trasformato ogni volta che la proprietà di input che non è un attributo riceve un nuovo punto dati. I nuovi valori degli attributi non avviano gli aggiornamenti delle trasformazioni. La stessa frequenza di richiesta per le operazioni API relative ai dati delle proprietà degli asset si applica ai risultati del calcolo delle trasformazioni.  
<a name="formula-output-rules"></a>Le espressioni delle formule possono generare solo valori doppi o stringhe. Le espressioni annidate possono generare altri tipi di dati, ad esempio stringhe, ma la formula nel suo insieme deve restituire un numero o una stringa. È possibile utilizzare la [funzione jp](expression-string-functions.md#jp-definition) per convertire una stringa in un numero. Il valore booleano deve essere 1 (vero) o 0 (falso). Per ulteriori informazioni, consulta [Valori indefiniti, infiniti e di overflow](expression-tutorials.md#undefined-values).

**Example definizione di trasformazione**  
Nell'esempio seguente viene illustrata una proprietà di trasformazione che converte i dati di misurazione della temperatura di un asset da Celsius a Fahrenheit. Questo oggetto è un esempio di un oggetto [AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html)che contiene un [Transform](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Transform.html). Puoi specificare questo oggetto come parte del payload della richiesta [CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) per creare una proprietà di trasformazione. Per ulteriori informazioni, consulta [Crea un modello di asset (AWS CLI)](create-asset-models.md#create-asset-model-cli).  

```
{
...
"assetModelProperties": [
...
{
  "name": "Temperature F",
  "dataType": "DOUBLE",
  "type": {
    "transform": {
      "expression": "9/5 * temp_c + 32",
      "variables": [
        {
          "name": "temp_c",
          "value": {
            "propertyId": "Temperature C"
          }
        }
      ]
    }
  },
  "unit": "Fahrenheit"
}
],
...
}
```

**Example definizione di trasformazione che contiene tre variabili**  
L'esempio seguente dimostra una proprietà di trasformazione che restituisce un messaggio di avviso (`"Caution"`) se più del 10 percento delle BLT123 parti non soddisfa lo standard. Altrimenti, restituisce un messaggio informativo (`"Normal"`).  

```
{
...
"assetModelProperties": [
...
{
"name": "Quality_Monitor",
"dataType": "STRING",
"type": {
    "transform": {
        "expression": "if(eq(Part_Number,"BLT123") and (Bad_Count / (Good_Count + Bad_Count) > 0.1), "Caution", "Normal")",
        "variables": [
            {
                "name": "Part_Number",
                "value": {
                    "propertyId": "Part Number"
                }
            },
            {
                "name": "Good_Count",
                "value": {
                    "propertyId": "Good Count"
                }
            },
            {
                "name": "Bad_Count",
                "value": {
                    "propertyId": "Bad Count"
                }
            }
        ]
    }
}
}
...
}
```

# Aggrega i dati provenienti da proprietà e altre risorse (metriche)
Dati aggregati (metriche)

Le metriche sono espressioni matematiche che utilizzano funzioni di aggregazione per elaborare tutti i punti dati di input e generare un singolo punto dati per intervallo di tempo specificato. Un parametro, ad esempio, può calcolare la temperatura oraria media da un flusso di dati di temperatura.

I parametri possono immettere dati dai parametri degli asset associati, in modo da poter calcolare le statistiche che forniscono informazioni dettagliate sull'operazione o su un sottoinsieme dell'operazione. Un parametro, ad esempio, può calcolare la temperatura oraria media di tutte le turbine eoliche di una centrale eolica. Per ulteriori informazioni su come definire le associazioni tra asset, consulta [Definite le gerarchie dei modelli di asset](define-asset-hierarchies.md).

Le metriche possono anche inserire dati da altre proprietà senza aggregare i dati su ogni intervallo di tempo. Se specifichi un [attributo](attributes.md) in una formula, AWS IoT SiteWise utilizza il valore [più recente](expression-temporal-functions.md#latest-definition) per quell'attributo quando calcola la formula. Se specifichi una metrica in una formula, AWS IoT SiteWise utilizza l'[ultimo](expression-temporal-functions.md#last-definition) valore per l'intervallo di tempo in cui calcola la formula. Ciò significa che puoi definire metriche come `OEE = Availability * Quality * Performance` `Availability``Quality`, dove e `Performance` sono tutte le altre metriche sullo stesso modello di asset.

AWS IoT SiteWise inoltre, calcola automaticamente un set di metriche di aggregazione di base per tutte le proprietà degli asset. Per ridurre i costi di calcolo, puoi utilizzare questi aggregati anziché definire parametri personalizzati per i calcoli di base. Per ulteriori informazioni, consulta [Interroga gli aggregati delle proprietà degli asset in AWS IoT SiteWise](aggregates.md).

**Topics**
+ [

## Definisci le metriche (console)
](#define-metrics-console)
+ [

## Definisci le metriche ()AWS CLI
](#define-metrics-cli)

## Definisci le metriche (console)


Quando definisci una metrica per un modello di asset nella AWS IoT SiteWise console, specifichi i seguenti parametri:
+ <a name="asset-property-name-console"></a>**Nome**: il nome della proprietà.
+ **Tipo di dati**: il tipo di dati della trasformazione, che può essere **Double** o **String**.
+ **ID esterno**: (Facoltativo) Si tratta di un ID definito dall'utente. Per ulteriori informazioni, consulta [Oggetti di riferimento con oggetti esterni IDs](object-ids.md#external-id-references) nella *Guida per l'utente di AWS IoT SiteWise *.
+ **Formula**: l'espressione metrica. Le espressioni metriche possono utilizzare [funzioni di aggregazione](expression-aggregation-functions.md) per inserire dati da una proprietà per tutte le risorse associate in una gerarchia. Inizia a digitare o premi il tasto freccia giù per aprire la funzione di completamento automatico. Per ulteriori informazioni, consulta [Usa espressioni di formule](formula-expressions.md).
**Importante**  <a name="metric-input-rules"></a>
Le metriche possono essere solo proprietà di tipo intero, doppio, booleano o stringa. I valori booleani vengono convertiti in `0` (false) e (true). `1`  
Le variabili di input in una espressione parametrica devono presentare lo stesso intervallo di tempo del parametro di output.  
<a name="formula-output-rules"></a>Le espressioni delle formule possono generare solo valori doppi o stringhe. Le espressioni annidate possono generare altri tipi di dati, ad esempio stringhe, ma la formula nel suo insieme deve restituire un numero o una stringa. È possibile utilizzare la [funzione jp](expression-string-functions.md#jp-definition) per convertire una stringa in un numero. Il valore booleano deve essere 1 (vero) o 0 (falso). Per ulteriori informazioni, consulta [Valori indefiniti, infiniti e di overflow](expression-tutorials.md#undefined-values).
+ **Intervallo di tempo: l'intervallo** di tempo metrico. <a name="metric-window-info"></a>AWS IoT SiteWise supporta i seguenti intervalli di tempo a finestra rotante, in cui ogni intervallo inizia alla fine di quello precedente:
  + da **1 minuto a** <a name="metric-window-1m"></a>1 minuto, calcolato alla fine di ogni minuto (00:00:00, 00:01:00, 12:02:00 e così via).
  + Da **5 minuti** a <a name="metric-window-5m"></a>5 minuti, calcolati alla fine di ogni cinque minuti a partire dall'ora (00:00:00, 12:05:00, 00:10:00 e così via).
  + da **15 minuti** a <a name="metric-window-15m"></a>15 minuti, calcolati alla fine di ogni quindici minuti a partire dall'ora (00:00:00, 12:15:00, 00:30:00 e così via).
  + da **1 ora** a <a name="metric-window-1h"></a>1 ora (60 minuti), calcolata alla fine di ogni ora in formato UTC (00:00:00, 01:00:00, 02:00:00 e così via).
  + **1 giorno** — <a name="metric-window-1d"></a>1 giorno (24 ore), calcolato alla fine di ogni giornata in UTC (00:00 di lunedì, 00:00 di martedì e così via).
  + da **1 settimana a** <a name="metric-window-1w"></a>1 settimana (7 giorni), calcolata alla fine di ogni domenica in UTC (ogni lunedì alle 00:00).
  + **Intervallo personalizzato: puoi inserire qualsiasi intervallo** di tempo compreso tra un minuto e una settimana.
+ **Data di offset**: (Facoltativa) La data di riferimento a partire dalla quale aggregare i dati.
+ **Tempo di offset**: (Facoltativo) L'ora di riferimento a partire dalla quale aggregare i dati. L'ora di offset deve essere compresa tra 00:00:00 e 23:59:59.
+ Fuso orario di **offset - (Facoltativo) Il fuso orario** per l'offset. Se non è specificato, il fuso orario di offset predefinito è l'Universal Coordinated Time (UTC). Vedi i seguenti fusi orari supportati.

### Fusi orari supportati

+ (UTC\$1 00:00) Ora coordinata universale
+ (UTC\$1 01:00) Ora centrale europea
+ (UTC\$1 02:00) Europa orientale
+ (UTC03\$1:00) Ora dell'Africa orientale
+ (UTC\$1 04:00) Ora del Vicino Oriente
+ (UTC\$1 05:00) Ora del Pakistan di Lahore
+ (UTC\$1 05:30) Ora solare dell'India
+ (UTC\$1 06:00) Ora solare del Bangladesh
+ (UTC\$1 07:00) Ora solare del Vietnam
+ 
+ (UTC\$1 09:00) Ora solare del Giappone
+ (UTC\$1 09:30) Ora centrale dell'Australia
+ (UTC\$1 10:00) Ora orientale dell'Australia
+ (UTC\$1 11:00) Ora solare delle Salomone
+ (UTC\$1 12:00) Ora solare della Nuova Zelanda
+ (UTC- 11:00) Ora delle Isole Midway
+ (UTC- 10:00) Ora solare delle Hawaii
+ (UTC- 09:00) Ora solare dell'Alaska
+ (UTC- 08:00) Ora solare del Pacifico
+ (UTC- 07:00) Ora solare di Phoenix
+ (UTC- 06:00) Ora solare centrale
+ (UTC- 05:00) Ora solare orientale
+ (UTC- 04:00) Ora di Porto Rico e Isole Vergini Americane
+ (UTC- 03:00) Ora solare dell'Argentina
+ (UTC- 02:00) Ora della Georgia del Sud
+ (UTC- 01:00) Ora dell'Africa centrale

**Example intervallo di tempo personalizzato con un offset (console)**  
L'esempio seguente mostra come definire un intervallo di tempo di 12 ore con un offset il 20 febbraio 2021 alle 18:30:30 (PST).  

**Per definire un intervallo personalizzato con un offset**

1. **Per **Intervallo di tempo, scegliete Intervallo** personalizzato.**

1. Per **Intervallo di tempo**, effettuate una delle seguenti operazioni:
   + Immettete**12**, quindi scegliete le **ore.**
   + Inserisci**720**, quindi scegli **minuti**.
   + Inserisci**43200**, quindi scegli **secondi**.
**Importante**  
L'**intervallo di tempo** deve essere un numero intero indipendentemente dall'unità.

1. **Per la **data di offset**, scegli 20/02/2021.**

1. **Per Tempo di offset, immettete.** **18:30:30**

1. Per il **fuso orario di Offset, scegliete** **(UTC- 08:00**) Pacific Standard Time.
Se crei la metrica il 1° luglio 2021, prima o alle 18:30:30 (PST), otterrai il primo risultato di aggregazione il 1° luglio 2021 alle 18:30:30 (PST). Il secondo risultato di aggregazione è il 2 luglio 2021 alle 06:30:30 (PST) e così via.

## Definisci le metriche ()AWS CLI


Quando definite una metrica per un modello di asset con l' AWS IoT SiteWise API, specificate i seguenti parametri:
+ <a name="asset-property-name-cli"></a>`name`— Il nome della proprietà.
+ `dataType`— Il tipo di dati della metrica, che può essere `DOUBLE` o`STRING`.
+ `externalId`— (Facoltativo) Si tratta di un ID definito dall'utente. Per ulteriori informazioni, consulta [Oggetti di riferimento con oggetti esterni IDs](object-ids.md#external-id-references) nella *Guida per l'utente di AWS IoT SiteWise *.
+ `expression`— L'espressione metrica. Le espressioni metriche possono utilizzare [funzioni di aggregazione](expression-aggregation-functions.md) per immettere dati da una proprietà per tutte le risorse associate in una gerarchia. Per ulteriori informazioni, consulta [Usa espressioni di formule](formula-expressions.md).
+ `window`— L'intervallo di tempo e l'offset della finestra di rotazione della metrica, in cui ogni intervallo inizia quando termina quello precedente:
  + `interval`— L'intervallo di tempo per la finestra di rotazione. L'intervallo di tempo deve essere compreso tra un minuto e una settimana.
  + `offsets`— L'offset della finestra ribaltabile. 

  Per ulteriori informazioni, consulta [TumblingWindow](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_TumblingWindow.html) nella *documentazione di riferimento dell’API AWS IoT SiteWise *.  
**Example intervallo di tempo personalizzato con un offset ()AWS CLI**  

  L'esempio seguente mostra come definire un intervallo di tempo di 12 ore con un offset il 20 febbraio 2021 alle 18:30:30 (PST).

  ```
  {
      "window": {
          "tumbling": {
              "interval": "12h",
              "offset": " 2021-07-23T18:30:30-08"
          }
      }
  }
  ```

  Se crei la metrica il 1° luglio 2021, prima o alle 18:30:30 (PST), otterrai il primo risultato di aggregazione il 1° luglio 2021 alle 18:30:30 (PST). Il secondo risultato di aggregazione è il 2 luglio 2021 alle 06:30:30 (PST) e così via.
+ `variables`— L'elenco di variabili che definisce le altre proprietà della risorsa o delle risorse secondarie da utilizzare nell'espressione. Ogni struttura di variabile contiene un nome semplice da utilizzare nell'espressione e una struttura `value` che specifica la proprietà da collegare alla variabile stessa. La struttura `value` contiene le seguenti informazioni:
  + `propertyId`— L'ID della proprietà da cui estrarre i valori. È possibile utilizzare il nome della proprietà anziché il relativo ID se la proprietà è definita nel modello corrente (anziché definita in un modello da una gerarchia).
  + `hierarchyId`— (Facoltativo) L'ID della gerarchia da cui interrogare gli asset secondari per la proprietà. È possibile utilizzare il nome della definizione della gerarchia anziché il relativo ID. Se omettete questo valore, AWS IoT SiteWise trova la proprietà nel modello corrente.
**Importante**  <a name="metric-input-rules"></a>
Le metriche possono essere solo proprietà di tipo intero, doppio, booleano o stringa. I valori booleani vengono convertiti in `0` (false) e (true). `1`  
Le variabili di input in una espressione parametrica devono presentare lo stesso intervallo di tempo del parametro di output.  
<a name="formula-output-rules"></a>Le espressioni delle formule possono generare solo valori doppi o stringhe. Le espressioni annidate possono generare altri tipi di dati, ad esempio stringhe, ma la formula nel suo insieme deve restituire un numero o una stringa. È possibile utilizzare la [funzione jp](expression-string-functions.md#jp-definition) per convertire una stringa in un numero. Il valore booleano deve essere 1 (vero) o 0 (falso). Per ulteriori informazioni, consulta [Valori indefiniti, infiniti e di overflow](expression-tutorials.md#undefined-values).
+ <a name="asset-property-unit-cli"></a>`unit`— (Facoltativo) L'unità scientifica della proprietà, ad esempio mm o Celsius.

**Example Definizione del parametro di esempio**  
Nell'esempio seguente viene illustrata una proprietà parametro che aggrega i dati di misurazione della temperatura di un asset per calcolare la temperatura oraria massima in Fahrenheit. Questo oggetto è un esempio di un [AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html)che contiene una [metrica](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Metric.html). Puoi specificare questo oggetto come parte del payload della richiesta [CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) per creare una proprietà di parametro. Per ulteriori informazioni, consulta [Crea un modello di asset (AWS CLI)](create-asset-models.md#create-asset-model-cli).  

```
{
      ...
      "assetModelProperties": [
      ...
      {
        "name": "Max temperature",
        "dataType": "DOUBLE",
        "type": {
          "metric": {
            "expression": "max(temp_f)",
            "variables": [
              {
                "name": "temp_f",
                "value": {
                  "propertyId": "Temperature F"
                }
              }
            ],
            "window": {
              "tumbling": {
                "interval": "1h"
              }
            }
          }
        },
        "unit": "Fahrenheit"
      }
    ],
    ...
}
```

**Example Esempio di definizione della metrica che inserisce dati dalle risorse associate**  
L'esempio seguente mostra una proprietà metrica che aggrega i dati sulla potenza media di più turbine eoliche per calcolare la potenza media totale di un parco eolico. [Questo oggetto è un esempio di un oggetto che contiene una metrica [AssetModelProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_AssetModelProperty.html).](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_Metric.html) Puoi specificare questo oggetto come parte del payload della richiesta [CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) per creare una proprietà di parametro.   

```
{
      ...
      "assetModelProperties": [
      ...
      {
          "name": "Total Average Power",
          "dataType": "DOUBLE",
          "type": {
            "metric": {
              "expression": "avg(power)",
              "variables": [
                {
                  "name": "power",
                  "value": {
                    "propertyId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
                    "hierarchyId": "Turbine Asset Model"
                  }
                }
              ],
              "window": {
                "tumbling": {
                  "interval": "5m"
                }
              }
            }
        },
        "unit": "kWh"
      }
    ],
    ...
}
```

# Usa espressioni di formule


Con le espressioni di formula, è possibile definire le funzioni matematiche per trasformare e aggregare i dati industriali grezzi e ottenere informazioni dettagliate sulla propria operazione. Le espressioni di formule combinano valori letterali, operatori, funzioni e variabili per elaborare i dati. Per ulteriori informazioni su come definire le proprietà degli asset che utilizzano espressioni di formule, consulta [Trasforma i dati (trasformazioni)](transforms.md) e[Aggrega i dati provenienti da proprietà e altre risorse (metriche)](metrics.md). Le trasformazioni e le metriche sono proprietà delle formule.

**Topics**
+ [

# Usa le variabili nelle espressioni delle formule
](expression-variables.md)
+ [

# Usa valori letterali nelle espressioni delle formule
](expression-literals.md)
+ [

# Usa gli operatori nelle espressioni delle formule
](expression-operators.md)
+ [

# Usa le costanti nelle espressioni delle formule
](expression-constants.md)
+ [

# Usa le funzioni nelle espressioni delle formule
](expression-functions.md)
+ [

# Tutorial sulle espressioni di formule
](expression-tutorials.md)

# Usa le variabili nelle espressioni delle formule
Usa variabili

Le variabili rappresentano le proprietà AWS IoT SiteWise degli asset nelle espressioni delle formule. Utilizzate le variabili per inserire valori da altre proprietà degli asset nelle espressioni, in modo da poter elaborare i dati provenienti da proprietà costanti ([attributi](attributes.md)), flussi di dati non elaborati ([misurazioni](measurements.md)) e altre proprietà delle formule.

Le variabili possono rappresentare le proprietà degli asset dello stesso modello di asset o dei modelli di asset secondari associati. Solo le formule metriche possono inserire variabili da modelli di asset secondari.

Le variabili vengono identificate con nomi diversi nella console e nell'API.
+ **AWS IoT SiteWise console**: utilizza i nomi delle proprietà degli asset come variabili nelle espressioni.
+ **AWS IoT SiteWise API (AWS CLI, AWS SDKs)**: definisci le variabili con la [ExpressionVariable](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExpressionVariable.html)struttura, che richiede un nome di variabile e un riferimento a una proprietà dell'asset. Il nome della variabile può contenere lettere minuscole, numeri e caratteri di sottolineatura. Quindi, utilizzate i nomi delle variabili per fare riferimento alle proprietà delle risorse nelle espressioni.

I nomi delle variabili distinguono tra maiuscole e minuscole

Per ulteriori informazioni, consulta [Definizione delle trasformazioni](transforms.md) e [Definizione delle metriche](metrics.md).

## Utilizzate le variabili per fare riferimento alle proprietà


Il *valore* di una variabile definisce la proprietà a cui fa riferimento. AWS IoT SiteWise offre diversi modi per eseguire questa operazione.
+ **Per ID della proprietà:** è possibile specificare l'ID univoco della proprietà (UUID) per identificarla.
+ **Per nome:** se la proprietà appartiene allo stesso modello di asset, è possibile specificarne il nome nel campo ID della proprietà.
+ **Per percorso:** un valore variabile può fare riferimento a una proprietà tramite il relativo *percorso.* Per ulteriori informazioni, consulta [Utilizzate i percorsi per fare riferimento alle proprietà personalizzate del modello composito](custom-composite-models.md#property-paths).

**Nota**  
 Le variabili non sono supportate dalla AWS IoT SiteWise console. Sono utilizzate dall' AWS IoT SiteWise API, tra cui AWS Command Line Interface AWS CLI) e AWS SDKs. 

 Una variabile ricevuta in una risposta da AWS IoT SiteWise include informazioni complete sul valore, inclusi l'ID e il percorso.

 Tuttavia, quando si passa una variabile a AWS IoT SiteWise (ad esempio, in una chiamata «crea» o «aggiorna»), è necessario specificare solo una di queste. Ad esempio, se si specifica il percorso, non è necessario fornire l'ID. 

# Usa valori letterali nelle espressioni delle formule
Usa valori letterali

AWS IoT SiteWise supporta l'uso di valori letterali nelle espressioni e nelle formule. I letterali sono valori fissi che rappresentano un tipo di dati specifico. In AWS IoT SiteWise, è possibile definire numeri e stringhe letterali nelle espressioni delle formule. I valori letterali possono essere utilizzati in vari contesti, tra cui trasformazioni di dati, condizioni di allarme e calcoli di visualizzazione.


+ <a name="number-literal-definition"></a>**Numeri**

  Usa numeri e notazione scientifica per definire numeri interi e doppi. È possibile utilizzare la [notazione E per esprimere numeri con notazione](https://en.wikipedia.org/wiki/Scientific_notation#E_notation) scientifica.

  Esempi:`1`,,`2.0`,,`.9`, `-23.1` `7.89e3` `3.4E-5`
+ <a name="string-literal-definition"></a>**Stringhe**

  Usa i caratteri `'` (virgolette) e `"` (virgolette doppie) per definire le stringhe. Il tipo di citazione per l'inizio e la fine devono corrispondere. Per evitare una virgoletta che corrisponde a quella utilizzata per dichiarare una stringa, includi quella virgoletta due volte. Questo è l'unico carattere di escape nelle AWS IoT SiteWise stringhe.

  Esempi: `'active'`, `"inactive"`, `'{"temp": 52}'`, `"{""temp"": ""high""}"`

# Usa gli operatori nelle espressioni delle formule
Usa gli operatori

È possibile utilizzare i seguenti operatori comuni nelle espressioni di formule.


| Operatore | Description | 
| --- | --- | 
|  `+`  |  Se entrambi gli operandi sono numeri, questo operatore aggiunge gli operandi sinistro e destro. Se uno degli operandi è una stringa, questo operatore concatena gli operandi sinistro e destro come stringhe. Ad esempio, l'espressione restituisce. `1 + 2 + " is three"` `"3 is three"` La stringa concatenata può contenere fino a 1024 caratteri. Se la stringa supera i 1024 caratteri, AWS IoT SiteWise non restituisce un punto dati per quel calcolo.  | 
|  `-`  |  Sottrae l'operando destro dall'operando sinistro. <a name="operator-numbers-only"></a>È possibile utilizzare questo operatore solo con operandi numerici.  | 
|  `/`  |  Divide l'operando sinistro per l'operando destro. <a name="operator-numbers-only"></a>È possibile utilizzare questo operatore solo con operandi numerici.  | 
|  `*`  |  Moltiplica gli operandi sinistro e destro. <a name="operator-numbers-only"></a>È possibile utilizzare questo operatore solo con operandi numerici.  | 
|  `^`  |  Solleva l'operando di sinistra alla potenza dell'operando destro (esponenziazione). <a name="operator-numbers-only"></a>È possibile utilizzare questo operatore solo con operandi numerici.  | 
|  `%`  |  Restituisce il resto della divisione dell'operando sinistro per l'operando destro. Il segno del risultato è identico a quello dell'operando sinistro. Questo comportamento è diverso dall'operazione del modulo. <a name="operator-numbers-only"></a>È possibile utilizzare questo operatore solo con operandi numerici.  | 
|  `x < y`  |  Restituisce `1` se `x` è minore di`y`, altrimenti. `0`  | 
|  `x > y`  |  Restituisce `1` se `x` è maggiore di`y`, altrimenti`0`.  | 
|  `x <= y`  |  Restituisce `1` se `x` è minore o uguale a`y`, altrimenti`0`.  | 
|  `x >= y`  |  Restituisce `1` se `x` è maggiore o uguale a`y`, altrimenti`0`.  | 
|  `x == y`  |  Restituisce `1` se `x` è uguale a`y`, altrimenti`0`.  | 
|  `x != y`  |  Restituisce `1` se non `x` è uguale a`y`, altrimenti`0`.  | 
|  `!x`  |  Restituisce `1` se `x` viene valutato come `0` (falso), altrimenti`0`. `x`viene valutato falso se:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-operators.html)  | 
|  `x and y`  |  Restituisce `0` se `x` viene valutato come `0` (false). Altrimenti, restituisce il risultato valutato di. `y` `x`o `y` viene valutato falso se:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-operators.html)  | 
|  `x or y`  |  Restituisce `1` se `x` viene valutato come `1` (true). Altrimenti, restituisce il risultato valutato di. `y` `x`o `y` viene valutato falso se:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-operators.html)  | 
|  `not x`  |  Restituisce `1` se `x` viene valutato come `0` (false), altrimenti. `0` `x`viene valutato falso se:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-operators.html)  | 
|   `[]` `s[index]`  |  Restituisce il carattere in corrispondenza di un indice `index` della stringa`s`. È equivalente alla sintassi dell'indice in Python. 

**Example Esempi**  
+ `"Hello!"[1]` restituisce `e`.
+ `"Hello!"[-2]` restituisce `o`.  | 
|   `[]` `s[start:end:step]`  |  Restituisce una parte della stringa. `s` È equivalente alla sintassi slice in Python. Questo operatore ha i seguenti argomenti: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-operators.html) È possibile omettere l'`step`argomento per utilizzarne il valore predefinito. Ad esempio, `s[1:4:1]` è uguale a `s[1:4]`. Gli argomenti devono essere numeri interi o la costante [none](expression-constants.md#none-definition). Se si specifica`none`, AWS IoT SiteWise utilizza il valore predefinito per quell'argomento. 

**Example Esempi**  
+ `"Hello!"[1:4]` restituisce `"ell"`.
+ `"Hello!"[:2]` restituisce `"He"`.
+ `"Hello!"[3:]` restituisce `"lo!"`.
+ `"Hello!"[:-4]` restituisce `"He"`.
+ `"Hello!"[::2]` restituisce `"Hlo"`.
+ `"Hello!"[::-1]` restituisce `"!olleH"`.  | 

# Usa le costanti nelle espressioni delle formule
Usa costanti

In AWS IoT SiteWise, è possibile utilizzare costanti nelle espressioni e nelle formule per rappresentare valori fissi o parametri predefiniti. Le costanti possono essere utilizzate in vari contesti, ad esempio trasformazioni di dati, condizioni di allarme o calcoli di visualizzazione. Utilizzando le costanti, è possibile semplificare le espressioni e renderle più leggibili e gestibili.

È possibile utilizzare le seguenti costanti matematiche comuni nelle espressioni. Tutte le costanti non fanno distinzione tra maiuscole e minuscole.

**Nota**  
Se si definisce una variabile con lo stesso nome di una costante, la variabile sostituisce la costante.


| Costante | Description | 
| --- | --- | 
|  `pi`  |  Il numero pi ()`π`: `3.141592653589793`  | 
|  `e`  |  Il numero e: `2.718281828459045`  | 
|  `true`  |  Equivalente al numero 1. Nel AWS IoT SiteWise, i booleani si convertono nei loro equivalenti numerici.  | 
|  `false`  |  Equivalente al numero 0. In AWS IoT SiteWise, i booleani vengono convertiti nei loro equivalenti numerici.  | 
|   `none`  |  Equivalente a nessun valore. È possibile utilizzare questa costante per non restituire nulla come risultato di un'[espressione condizionale](expression-conditional-functions.md).  | 

# Usa le funzioni nelle espressioni delle formule
Usa le funzioni

È possibile utilizzare le seguenti funzioni per operare sui dati nelle espressioni delle formule.

Le trasformazioni e le metriche supportano diverse funzioni. La tabella seguente indica quali tipi di funzioni sono compatibili con ogni tipo di proprietà della formula.

**Nota**  
È possibile includere un massimo di 10 funzioni in un'espressione di formula.


| Tipo di funzione | Trasformazioni | Metriche | 
| --- | --- | --- | 
|  [Usa funzioni comuni nelle espressioni delle formule](expression-common-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  | 
|  [Usa le funzioni di confronto nelle espressioni delle formule](expression-comparison-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  | 
|  [Usa le funzioni condizionali nelle espressioni delle formule](expression-conditional-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  | 
|  [Usa le funzioni di stringa nelle espressioni delle formule](expression-string-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  | 
|  [Usa le funzioni di aggregazione nelle espressioni delle formule](expression-aggregation-functions.md)  |  <a name="polaris-no-para"></a>![\[A red circle with the letter x for no.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-no.png) No  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  | 
|  [Usa le funzioni temporali nelle espressioni delle formule](expression-temporal-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  | 
|  [Utilizza le funzioni di data e ora nelle espressioni delle formule](expression-date-and-time-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/icon-yes.png) Sì  | 

## Sintassi della funzione


È possibile utilizzare la seguente sintassi per creare funzioni:

Sintassi regolare  
Con la sintassi normale, il nome della funzione è seguito da parentesi con zero o più argomenti.  
`function_name(argument1, argument2, argument3, ...)`. Ad esempio, le funzioni con la sintassi normale potrebbero essere simili a `log(x)` e`contains(s, substring)`.

Sintassi uniforme delle chiamate di funzione (UFCS)  
UFCS consente di chiamare funzioni utilizzando la sintassi per le chiamate di metodo nella programmazione orientata agli oggetti. Con UFCS, il primo argomento è seguito da dot (`.`), quindi dal nome della funzione e dagli argomenti rimanenti (se presenti) tra parentesi.  
`argument1.function_name(argument2, argument3, ...)`. Ad esempio, le funzioni con UFCS potrebbero essere simili `x.log()` a e. `s.contains(substring)`  
È inoltre possibile utilizzare UFCS per concatenare le funzioni successive. AWS IoT SiteWise utilizza il risultato della valutazione della funzione corrente come primo argomento per la funzione successiva.  
Ad esempio, è possibile utilizzare `message.jp('$.status').lower().contains('fail')` invece di`contains(lower(jp(message, '$.status')),'fail')`.  
Per ulteriori informazioni, visita il sito Web del [linguaggio di programmazione D.](https://tour.dlang.org/tour/en/gems/uniform-function-call-syntax-ufcs)

**Nota**  
È possibile utilizzare UFCS per tutte le AWS IoT SiteWise funzioni.  
AWS IoT SiteWise le funzioni non distinguono tra maiuscole e minuscole. Ad esempio, è possibile utilizzare `lower(s)` e in modo `Lower(s)` intercambiabile.

# Usa funzioni comuni nelle espressioni delle formule
Usa funzioni comuni

Nelle [trasformazioni](transforms.md) e nelle [metriche](metrics.md), è possibile utilizzare le seguenti funzioni per calcolare le funzioni matematiche comuni nelle trasformazioni e nelle metriche.


| Funzione | Description | 
| --- | --- | 
|  `abs(x)`  |  Restituisce il valore assoluto di `x`.  | 
|  `acos(x)`  |  Restituisce l'arccoseno di `x`.  | 
|  `asin(x)`  |  Restituisce l'arcsine di `x`.  | 
|  `atan(x)`  |  Restituisce l'arctangente di `x`.  | 
|  `cbrt(x)`  |  Restituisce la radice cubica di `x`.  | 
|  `ceil(x)`  |  Restituisce il numero intero più vicino maggiore di `x`.  | 
|  `cos(x)`  |  Restituisce il coseno di `x`.  | 
|  `cosh(x)`  |  Restituisce il coseno iperbolico di `x`.  | 
|  `cot(x)`  |  Restituisce la cotangente di. `x`  | 
|  `exp(x)`  |  Restituisce `e` al potere di `x`.  | 
|  `expm1(x)`  |  Restituisce `exp(x) - 1`. Utilizzate questa funzione `exp(x) - 1` per calcolare con maggiore precisione valori piccoli di. `x`  | 
|  `floor(x)`  |  Restituisce il numero intero più vicino inferiore a `x`.  | 
|  `log(x)`  |  Restituisce `loge` (base `e`) di `x`.  | 
|  `log10(x)`  |  Restituisce `log10` (base `10`) di `x`.  | 
|  `log1p(x)`  |  Restituisce `log(1 + x)`. Utilizzare questa funzione `log(1 + x)` per calcolare con maggiore precisione valori piccoli di`x`.  | 
|  `log2(x)`  |  Restituisce `log2` (base `2`) di `x`.  | 
|  `pow(x, y)`  |  Restituisce `x` al potere di `y`. Questo è equivalente a`x ^ y`.  | 
|  `signum(x)`  |  Restituisce il segno di `x` (`-1` per input negativi, `0` per input pari a zero, `+1` per input positivi).  | 
|  `sin(x)`  |  Restituisce il seno di `x`.  | 
|  `sinh(x)`  |  Restituisce il seno iperbolico di `x`.  | 
|  `sqrt(x)`  |  Restituisce la radice quadrata di `x`.  | 
|  `tan(x)`  |  Restituisce la tangente di `x`.  | 
|  `tanh(x)`  |  Restituisce la tangente iperbolica di `x`.  | 

# Usa le funzioni di confronto nelle espressioni delle formule
Usa le funzioni di confronto

Nelle [trasformazioni](transforms.md) e nelle [metriche](metrics.md), è possibile utilizzare le seguenti funzioni di confronto per confrontare due valori e generare `1` (vero) o `0` (falso). AWS IoT SiteWise [confronta le stringhe in base all'ordine lessicografico.](https://en.wikipedia.org/wiki/Lexicographic_order)


| Funzione | Description | 
| --- | --- | 
|  `gt(x, y)`  |  Restituisce `1` se `x` è maggiore di `y`, altrimenti `0` (`x > y`). <a name="comparison-function-incompatible-types"></a>Questa funzione non restituisce un valore se `x` e `y` sono tipi incompatibili, come un numero e una stringa.  | 
|  `gte(x, y)`  |  Restituisce `1` se `x` è maggiore o uguale a `y`, altrimenti `0` (`x ≥ y`). <a name="comparison-function-relative-tolerance"></a>AWS IoT SiteWise considera gli argomenti uguali se rientrano in una tolleranza relativa di`1E-9`. Si comporta in modo simile alla funzione [isclose](https://docs.python.org/3/library/math.html#math.isclose) in Python. <a name="comparison-function-incompatible-types"></a>Questa funzione non restituisce un valore se `x` e `y` sono tipi incompatibili, come un numero e una stringa.  | 
|  `eq(x, y)`  |  Restituisce `1` se `x` è uguale a `y`, altrimenti `0` (`x == y`). <a name="comparison-function-relative-tolerance"></a>AWS IoT SiteWise considera gli argomenti uguali se rientrano in una tolleranza relativa di`1E-9`. Si comporta in modo simile alla funzione [isclose](https://docs.python.org/3/library/math.html#math.isclose) in Python. <a name="comparison-function-incompatible-types"></a>Questa funzione non restituisce un valore se `x` e `y` sono tipi incompatibili, come un numero e una stringa.  | 
|  `lt(x, y)`  |  Restituisce `1` se `x` è inferiore a `y`, altrimenti `0` (`x < y`). <a name="comparison-function-incompatible-types"></a>Questa funzione non restituisce un valore se `x` e `y` sono tipi incompatibili, come un numero e una stringa.  | 
|  `lte(x, y)`  |  Restituisce `1` se `x` è minore o uguale a `y`, altrimenti `0` (`x ≤ y`). <a name="comparison-function-relative-tolerance"></a>AWS IoT SiteWise considera gli argomenti uguali se rientrano in una tolleranza relativa di`1E-9`. Si comporta in modo simile alla funzione [isclose](https://docs.python.org/3/library/math.html#math.isclose) in Python. <a name="comparison-function-incompatible-types"></a>Questa funzione non restituisce un valore se `x` e `y` sono tipi incompatibili, come un numero e una stringa.  | 
|  `isnan(x)`  |  Restituisce `1` se `x` è uguale a`NaN`, altrimenti`0`. Questa funzione non restituisce un valore se `x` è una stringa.  | 

# Usa le funzioni condizionali nelle espressioni delle formule
Usa funzioni condizionali

Nelle [trasformazioni](transforms.md) e nelle [metriche](metrics.md), è possibile utilizzare la seguente funzione per verificare una condizione e restituire risultati diversi, indipendentemente dal fatto che la condizione restituisca vero o falso.


| Funzione | Description | 
| --- | --- | 
|   `if(condition, result_if_true, result_if_false)`  |  Valuta `condition` e restituisce `result_if_true` se la condizione restituisce vero o `result_if_false` se la condizione restituisce. `false` `condition`deve essere un numero. Questa funzione considera `0` una stringa vuota come `false` e tutto il resto (incluso`NaN`) come`true`. I booleani vengono convertiti in `0` (false) e `1` (true). È possibile restituire la [costante none](expression-constants.md#none-definition) da questa funzione per scartare l'output per una particolare condizione. Ciò significa che puoi filtrare i punti dati che non soddisfano una condizione. Per ulteriori informazioni, consulta [Filtra i punti dati](expression-tutorials.md#filter-data). 

**Example Esempi**  
+ `if(0, x, y)`restituisce la variabile`y`.
+ `if(5, x, y)`restituisce la variabile`x`.
+ `if(gt(temp, 300), x, y)`restituisce la variabile `x` se la variabile `temp` è maggiore di`300`.
+ `if(gt(temp, 300), temp, none)`restituisce la variabile `temp` se è maggiore o uguale a`300`, oppure `none` (nessun valore) se `temp` è minore di`300`. Si consiglia di utilizzare UFCS per funzioni condizionali annidate in cui uno o più argomenti sono funzioni condizionali. È possibile utilizzare `if(condition, result_if_true)` per valutare una condizione e `elif(condition, result_if_true, result_if_false)` valutare condizioni aggiuntive. Ad esempio, puoi usare `if(condition1, result1_if_true).elif(condition2, result2_if_true, result2_if_false)` invece di`if(condition1, result1_if_true, if(condition2, result2_if_true, result2_if_false))`. È inoltre possibile concatenare funzioni condizionali intermedie aggiuntive. Ad esempio, è possibile utilizzare, `if(condition1, result1_if_true).elif(condition2, result2_if_true).elif(condition3, result3_if_true, result3_if_false)` anziché annidare, più `if` istruzioni, ad esempio. `if(condition1, result1_if_true, if(condition2, result2_if_true, if(condition3, result3_if_true result3_if_false)))`  È necessario utilizzarlo `elif(condition, result_if_true, result_if_false)` con UFCS.   | 

# Usa le funzioni di stringa nelle espressioni delle formule
Usa le funzioni di stringa

Nelle [trasformazioni](transforms.md) e nelle [metriche](metrics.md), è possibile utilizzare le seguenti funzioni per operare sulle stringhe. Per ulteriori informazioni, consulta [Usa le stringhe nelle formule](expression-tutorials.md#use-strings-in-formulas).

**Importante**  
<a name="formula-output-rules"></a>Le espressioni di formule possono generare solo valori doppi o stringhe. Le espressioni annidate possono generare altri tipi di dati, ad esempio stringhe, ma la formula nel suo insieme deve restituire un numero o una stringa. È possibile utilizzare la [funzione jp](#jp-definition) per convertire una stringa in un numero. Il valore booleano deve essere 1 (vero) o 0 (falso). Per ulteriori informazioni, consulta [Valori indefiniti, infiniti e di overflow](expression-tutorials.md#undefined-values).


| Funzione | Description | 
| --- | --- | 
|  `len(s)`  |  Restituisce la lunghezza della stringa. `s`  | 
|  `find(s, substring)`  |  Restituisce l'indice della stringa `substring` nella stringa`s`.  | 
|  `contains(s, substring)`  |  Restituisce `1` se la stringa `s` contiene la stringa`substring`, altrimenti`0`.  | 
|  `upper(s)`  |  Restituisce la stringa `s` in formato maiuscolo.  | 
|  `lower(s)`  |  Restituisce la stringa `s` in formato minuscolo.  | 
|   `jp(s, json_path)`  |  Valuta la stringa `s` con l'[JsonPath](https://github.com/json-path/JsonPath)espressione `json_path` e restituisce il risultato. Utilizzate questa funzione per effettuare le seguenti operazioni: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-string-functions.html) Per estrarre un valore di stringa da una struttura JSON e restituirlo come numero, è necessario utilizzare più funzioni annidate`jp`. La `jp` funzione esterna estrae la stringa dalla struttura JSON e la `jp` funzione interna converte la stringa in un numero. La stringa `json_path` deve contenere una stringa letterale. Ciò significa che non `json_path` può essere un'espressione che restituisce una stringa. 

**Example Esempi**  
+ `jp('{"status":"active","value":15}', '$.value')` restituisce `15`.
+ `jp('{"measurement":{"reading":25,"confidence":0.95}}', '$.measurement.reading')` restituisce `25`.
+ `jp('[2,8,23]', '$[2]')` restituisce `23`.
+ `jp('{"values":[3,6,7]}', '$.values[1]')` restituisce `6`.
+ `jp('111', '$')` restituisce `111`.
+ `jp(jp('{"measurement":{"reading":25,"confidence":"0.95"}}', '$.measurement.confidence'), '$')` restituisce `0.95`.  | 
|  `join(s0, s1, s2, s3, ...)`  |  Restituisce una stringa concatenata con un delimitatore. Questa funzione utilizza la prima stringa di input come delimitatore e unisce le stringhe di input rimanenti. Si comporta in modo simile alla funzione [join (CharSequence delimiter, CharSequence](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#join-java.lang.CharSequence-java.lang.CharSequence...-)... elements) in Java. 

**Example Esempi**  
+ `join("-", "aa", "bb", "cc")`restituisce `aa-bb-cc`  | 
|  `format(expression: "format")` o `format("format", expression)`  |  Restituisce una stringa nel formato specificato. Questa funzione restituisce `expression` un valore e quindi restituisce il valore nel formato specificato. Si comporta in modo simile alla funzione [format (String format, Object... args)](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...-) in Java. Per ulteriori informazioni sui formati supportati, consulta Conversioni in [Class Formatter](https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html) nella *piattaforma Java, Specifiche dell'API Standard Edition 7*. 

**Example Esempi**  
+ `format(100+1: "d")`restituisce una stringa,. `101`
+ `format("The result is %d", 100+1)`restituisce una stringa,`The result is 101`.  | 
|  `f'expression'`  |  Restituisce una stringa concatenata. Con questa funzione formattata, è possibile utilizzare un'espressione semplice per concatenare e formattare stringhe. Queste funzioni possono contenere espressioni annidate. È possibile utilizzare `{}` (parentesi graffe arricciate) per interpolare le espressioni. Si comporta in modo simile alle [stringhe letterali formattate in Python](https://docs.python.org/3/reference/lexical_analysis.html#f-strings). 

**Example Esempi**  
+ `f'abc{1+2: "f"}d'` restituisce `abc3.000000d`. Per valutare questa espressione di esempio, procedi come segue:

  1. `format(1+2: "f")`restituisce un numero in virgola mobile,`3.000000`.

  1. `join('', "abc", 1+2, 'd')`restituisce una stringa,`abc3.000000d`.

  Puoi anche scrivere l'espressione nel modo seguente:`join('', "abc", format(1+2: "f"), 'd')`.  | 

# Usa le funzioni di aggregazione nelle espressioni delle formule
Usa le funzioni di aggregazione

Solo nelle [metriche](metrics.md), puoi utilizzare le seguenti funzioni che aggregano i valori di input in ogni intervallo di tempo e calcolano un singolo valore di output. Le funzioni di aggregazione possono aggregare i dati dagli asset associati.

Gli argomenti delle funzioni di aggregazione possono essere [variabili](expression-variables.md), [numeri letterali, funzioni temporali](expression-literals.md#number-literal-definition)[, espressioni annidate o funzioni](expression-temporal-functions.md) di aggregazione. La formula `max(latest(x), latest(y), latest(z))` utilizza una funzione di aggregazione come argomento e restituisce il valore corrente massimo delle proprietà, e. `x` `y` `z`

È possibile utilizzare espressioni annidate nelle funzioni di aggregazione. Quando si utilizzano espressioni nidificate, si applicano le seguenti regole: 
+ Ogni argomento può avere una sola variabile.  
**Example**  

  Ad esempio, `avg(x*(x-1))` e `sum(x/2 )/avg(y^2 )` sono supportati.

  Ad esempio, `min(x/y)` non è supportato.
+ Ogni argomento può avere espressioni annidate a più livelli.  
**Example**  

  Ad esempio, `sum(avg(x^2 )/2)` è supportato.
+ Argomenti diversi possono avere variabili diverse.  
**Example**  

  Ad esempio, `sum(x/2, y*2)` è supportato.

**Nota**  
Se le espressioni contengono misurazioni, AWS IoT SiteWise utilizza gli ultimi valori dell'intervallo di tempo corrente per le misurazioni per calcolare gli aggregati.
Se le espressioni contengono attributi, AWS IoT SiteWise utilizza i valori più recenti per gli attributi per calcolare gli aggregati.


| Funzione | Description | 
| --- | --- | 
|  `avg(x0, ..., xn)`  |  Restituisce la media dei valori delle variabili date nell'intervallo di tempo specificato. <a name="aggregation-function-no-output"></a>Questa funzione restituisce un punto dati solo se le variabili specificate hanno almeno un punto dati nell'intervallo di tempo corrente.  | 
|   `sum(x0, ..., xn)`  |  Restituisce la somma dei valori delle variabili date nell'intervallo di tempo specificato. <a name="aggregation-function-no-output"></a>Questa funzione emette un punto dati solo se le variabili date hanno almeno un punto dati nell'intervallo di tempo corrente.  | 
|  `min(x0, ..., xn)`  |  Restituisce il valore minimo delle variabili date nell'intervallo di tempo specificato. <a name="aggregation-function-no-output"></a>Questa funzione emette un punto dati solo se le variabili date hanno almeno un punto dati nell'intervallo di tempo corrente.  | 
|  `max(x0, ..., xn)`  |  Restituisce il valore massimo delle variabili date nell'intervallo di tempo specificato. <a name="aggregation-function-no-output"></a>Questa funzione emette un punto dati solo se le variabili date hanno almeno un punto dati nell'intervallo di tempo corrente.  | 
|  `count(x0, ..., xn)`  |  Restituisce il numero totale di punti di dati per le variabili date nell'intervallo di tempo corrente. Per ulteriori informazioni su come contare il numero di punti dati che soddisfano una condizione, consulta [Conta i punti dati che corrispondono a una condizione](expression-tutorials.md#count-filtered-data). <a name="aggregation-function-always-output"></a>Questa funzione calcola un punto dati per ogni intervallo di tempo.  | 
| `stdev(x0, ..., xn)` | Restituisce la deviazione standard dei valori delle variabili specificate nell'intervallo di tempo corrente. Questa funzione emette un punto dati solo se le variabili date hanno almeno un punto dati nell'intervallo di tempo corrente.  | 

# Usa le funzioni temporali nelle espressioni delle formule
Usa le funzioni temporali

Utilizza le funzioni temporali per restituire valori in base ai timestamp dei punti dati.

## Usa le funzioni temporali nelle metriche


Solo nelle [metriche](metrics.md), puoi utilizzare le seguenti funzioni che restituiscono valori in base ai timestamp dei punti dati.

Gli argomenti delle funzioni temporali devono essere proprietà del modello di asset locale o espressioni annidate. Ciò significa che non è possibile utilizzare le proprietà dei modelli di asset secondari nelle funzioni temporali.

È possibile utilizzare espressioni annidate nelle funzioni temporali. Quando si utilizzano espressioni nidificate, si applicano le seguenti regole: 
+ Ogni argomento può avere una sola variabile.

  Ad esempio, `latest( t*9/5 + 32 )` è supportato.
+ Gli argomenti non possono essere funzioni di aggregazione.

  Ad esempio, `first( sum(x) )` non è supportato.


| Funzione | Description | 
| --- | --- | 
|  `first(x)`  |  Restituisce il valore con il primo timestamp delle variabili date nell'intervallo di tempo specificato.  | 
|   `last(x)` |  Restituisce il valore con l'ultimo timestamp delle variabili date nell'intervallo di tempo specificato.  | 
|  `earliest(x)`  |  Restituisce l'ultimo valore della variabile specificata prima dell'inizio dell'intervallo di tempo corrente. Questa funzione calcola un punto dati per ogni intervallo di tempo, se la proprietà di input ha almeno un punto dati nella cronologia. Per informazioni dettagliate, vedi [time-range-defintion](#time-range-def).   | 
|   `latest(x)` |  Restituisce l'ultimo valore della variabile specificata con l'ultimo timestamp prima della fine dell'intervallo di tempo corrente. Questa funzione calcola un punto dati per ogni intervallo di tempo, se la proprietà di input ha almeno un punto dati nella cronologia. Per informazioni dettagliate, vedi [time-range-defintion](#time-range-def).  | 
|   `statetime(x)`  |  Restituisce la quantità di tempo in secondi in cui le variabili date sono risultate positive nell'intervallo di tempo specificato. È possibile utilizzare le [funzioni di confronto](expression-comparison-functions.md) per creare una proprietà di trasformazione da utilizzare per la `statetime` funzione.  Ad esempio, se si dispone di una proprietà `Idle`, cioè `0` o `1`, è possibile calcolare la durata dell'inattività nell'intervallo di tempo con questa espressione: `IdleTime = statetime(Idle)`. Per ulteriori informazioni, vedere lo [scenario statetime di esempio](#statetime-example). La funzione non supporta le proprietà dei parametri come variabili di input. Questa funzione calcola un punto dati per ogni intervallo di tempo, se la proprietà di input ha almeno un punto dati nella cronologia.  | 
|   `TimeWeightedAvg(x, [interpolation])`  | Restituisce la media dei dati di input ponderata con gli intervalli di tempo tra i punti.Vedi [Parametri delle funzioni ponderate nel tempo per i dettagli](#timeweighted-parameter) del calcolo e degli intervalli.L'argomento opzionale `interpolaton` deve essere una costante di stringa:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-temporal-functions.html) | 
|   `TimeWeightedStDev(x, [algo])`  |  Restituisce la deviazione standard dei dati di input ponderata con gli intervalli di tempo tra i punti.  Vedi [Parametri delle funzioni ponderate nel tempo per i dettagli del](#timeweighted-parameter) calcolo e degli intervalli.  Il calcolo utilizza l'algoritmo di calcolo Last Observed Carry Forward per gli intervalli tra i punti dati. In questo approccio, il punto dati viene calcolato come ultimo valore osservato fino al successivo timestamp del punto dati di input. Il peso viene calcolato come intervallo di tempo in secondi tra i punti dati o i confini della finestra.  L'argomento opzionale `algo` deve essere una costante di stringa: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-temporal-functions.html) Le seguenti formule vengono utilizzate per il calcolo nei casi in cui: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-temporal-functions.html) Equazione per la deviazione standard della popolazione: ![\[Equazione per la deviazione standard della popolazione.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/timeweightedstdev1.png) Equazione per la deviazione standard di frequenza: ![\[Equazione per la deviazione standard di frequenza.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/timeweighted-frequency-stdev.png)  | 

Il diagramma seguente mostra come AWS IoT SiteWise calcola le funzioni temporali,, e `first` `last` `earliest``latest`, rispetto all'intervallo di tempo corrente.

![\[AWS IoT SiteWise le funzioni temporali restituiscono punti dati in base al relativo timestamp.\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/images/sitewise-temporal-functions.png)
<a name="time-range-def"></a>

**Nota**  
L'intervallo di tempo per`first(x)`, `last(x)` è (inizio finestra corrente, fine finestra corrente].
L'intervallo di tempo per `latest(x)` è (inizio dell'ora, fine della finestra corrente].
L'intervallo di tempo per `earliest(x)` è (inizio dell'ora, fine della finestra precedente].

**Parametri delle funzioni ponderati nel tempo**

Le funzioni ponderate nel tempo calcolate per la finestra aggregata tengono conto di quanto segue:
+ Punti dati all'interno della finestra
+ Intervalli di tempo tra i punti dati
+ Ultimo punto dati prima della finestra
+ Primo punto dati dopo la finestra (per alcuni algoritmi)

**Termini:**
+ **Punto dati errato**: qualsiasi punto dati con valore non numerico o di qualità non buona. Questo non viene considerato nel calcolo dei risultati di una finestra.
+ **Intervallo errato**: l'intervallo dopo un punto dati errato. Anche l'intervallo precedente al primo punto dati noto è considerato un intervallo errato.
+ **Buon punto dati**: qualsiasi punto dati con buona qualità e valore numerico.

**Nota**  
AWS IoT SiteWise consuma dati di `GOOD` qualità solo quando calcola trasformazioni e metriche. Ignora e fornisce dati`UNCERTAIN`. `BAD`
L'intervallo precedente al primo punto dati noto è considerato un intervallo **errato**. Per ulteriori informazioni, consulta [Tutorial sulle espressioni di formule](expression-tutorials.md).

L'intervallo dopo l'ultimo punto dati noto continua all'infinito e influisce su tutte le finestre successive. Quando arriva un nuovo punto dati, la funzione ricalcola l'intervallo.

Seguendo le regole precedenti, il risultato aggregato della finestra viene calcolato e limitato ai limiti delle finestre. Per impostazione predefinita, la funzione invia il risultato della finestra solo se l'intera finestra è un intervallo **adeguato**.

Se l'**intervallo di validità** della finestra è inferiore alla lunghezza della finestra, la funzione non invia la finestra. 

Quando i punti dati che influiscono sul risultato della finestra cambiano, la funzione ricalcola la finestra, anche se i punti dati si trovano all'esterno della finestra. 

Se la proprietà di input ha almeno un punto dati nella sua cronologia ed è stato avviato un calcolo, la funzione calcola le funzioni aggregate ponderate nel tempo per ogni intervallo di tempo.

**Example Esempio di scenario statetime**  
Si consideri un esempio in cui si dispone di una risorsa con le seguenti proprietà:  
+ `Idle`— Una misurazione che è o. `0` `1` Quando il valore è `1`, la macchina è inattiva.
+ `Idle Time`— Una metrica che utilizza la formula `statetime(Idle)` per calcolare la quantità di tempo in secondi in cui la macchina è inattiva, per intervallo di 1 minuto.
La proprietà `Idle` ha i seguenti punti dati.  


|  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |
| Time stamp | 2:00:00 PM | 2:00:30 PM | 2:01:15 PM | 2:02:45 PM | 2:04:00 PM | 
| Idle | 0 | 1 | 1 | 0 | 0 | 
AWS IoT SiteWise calcola la `Idle Time` proprietà ogni minuto in base ai valori di. `Idle` Al termine di questo calcolo, la proprietà `Idle Time` ha i seguenti punti dati.  


|  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |
| Time stamp | 2:00:00 PM | 2:01:00 PM | 2:02:00 PM | 2:03:00 PM | 2:04:00 PM | 
| Idle Time | N/D | 30 | 60 | 45 | 0 | 
AWS IoT SiteWise esegue i seguenti calcoli `Idle Time` alla fine di ogni minuto.  
+ Alle 2:00 PM (dall’1:59 PM alle 2:00 PM)
  + Non ci sono dati per `Idle` prima delle 2:00 PM, quindi nessun punto dati viene calcolato.
+ Alle 2:01 PM (dalle 2:00 PM alle 2:01 PM)
  + Alle 2:00:00 PM, la macchina è attiva (`Idle` è `0`).
  + Alle 2:00:30 PM, la macchina è inattiva (`Idle` è `1`).
  + `Idle` non cambia di nuovo prima della fine dell'intervallo alle 2:01:00 PM, quindi `Idle Time` è 30 secondi.
+ Alle 2:02 PM (da 2:01 PM alle 2:02 PM)
  + Alle 2:01:00 PM, la macchina è inattiva (con l'ultimo punto dati alle 2:00:30 PM).
  + Alle 2:01:15, la macchina è ancora inattiva.
  + `Idle` non cambia di nuovo prima della fine dell'intervallo alle 2:02:00 PM, quindi `Idle Time` è 60 secondi.
+ Alle 2:03 PM (dalle 2:02 PM fino 2:03 PM)
  + Alle 2:02:00 PM, la macchina è inattiva (per l'ultimo punto dati alle 2:01:15 PM).
  + Alle 2:02:45 PM, la macchina è attiva.
  + `Idle` non cambia di nuovo prima della fine dell'intervallo alle 2:03:00 PM, quindi `Idle Time` è 45 secondi.
+ Alle 2:04 PM (dalle 2:03 PM fino alle 2:04 PM)
  + Alle 2:03:00 PM, la macchina è attiva (per l'ultimo punto dati alle 2:02:45 PM).
  + `Idle` non cambia di nuovo prima della fine dell'intervallo alle 2:04:00 PM, quindi `Idle Time` è 0 secondi.

**Example Esempio TimeWeightedAvg e TimeWeightedStDev scenario**  
Le tabelle seguenti forniscono input e output di esempio per queste metriche della finestra di un minuto:. `Avg(x), TimeWeightedAvg(x), TimeWeightedAvg(x, "linear"), stDev(x), timeWeightedStDev(x), timeWeightedStDev(x, 'p')`  
Esempio di input per una finestra aggregata di un minuto:  
Questi punti dati sono tutti di qualità. `GOOD`


|  |  | 
| --- |--- |
| 03:00:00 | 4.0 | 
| 03:01:00 | 2.0 | 
| 03:01:10 | 8.0 | 
| 03:01:50 | 20.0 | 
| 03:02:00 | 14,0 | 
| 03:02:05 | 10,0 | 
| 03:02:10 | 3.0 | 
| 03:02:30 | 20.0 | 
| 03:03:30 | 0,0 | 
Risultati aggregati in uscita:  
Nessuno: risultato non prodotto per questa finestra.


| Orario | `Avg(x)` | `TimeWeightedAvg(x)` | `TimeWeightedAvg(X, "linear")` | `stDev(X)` | `timeWeightedStDev(x)` | `timeWeightedStDev(x, 'p')` | 
| --- | --- | --- | --- | --- | --- | --- | 
| 3:00:00 | 4 | Nessuno | Nessuno | 0 | Nessuno | Nessuno | 
| 3:01:00 | 2 | 4 | 3 | 0 | 0 | 0 | 
| 3:02:00 | 14 | 9 | 13 | 6 | 5,4306 10041581775 | 5,385164807134504 | 
| 3:03:00 | 11 | 13 | 12,875 | 8,54400374531753 | 7,724054437220943 | 7,659416862050705 | 
| 3:04:00 | 0 | 10 | 2.5 | 0 | 10,084389681792215 | 10 | 
| 3:05:00 | Nessuno | 0 | 0 | Nessuno | 0 | 0 | 

## Usa le funzioni temporali nelle trasformazioni


Solo nelle [trasformazioni](transforms.md), è possibile utilizzare la `pretrigger()` funzione per recuperare il valore di `GOOD` qualità di una variabile prima dell'aggiornamento della proprietà che ha avviato il calcolo della trasformazione corrente.

Consideriamo un esempio in cui un produttore monitora AWS IoT SiteWise lo stato di una macchina. Il produttore utilizza le seguenti misurazioni e trasformazioni per rappresentare il processo:
+ Una misurazione`current_state`, che può essere 0 o 1.
  + Se la macchina è in stato di pulizia, è `current_state` uguale a 1.
  + Se la macchina è in stato di produzione, è `current_state` uguale a 0.
+ Una trasformazione, che `cleaning_state_duration` equivale a. `if(pretrigger(current_state) == 1, timestamp(current_state) - timestamp(pretrigger(current_state)), none)` Questa trasformazione restituisce per quanto tempo la macchina è rimasta nello stato di pulizia, in secondi, nel formato Unix epoch. Per ulteriori informazioni, vedere [Usa le funzioni condizionali nelle espressioni delle formule](expression-conditional-functions.md) e la funzione [timestamp](expression-date-and-time-functions.md) ().

Se la macchina rimane in stato di pulizia più a lungo del previsto, il produttore potrebbe esaminare la macchina.

È possibile utilizzare la `pretrigger()` funzione anche in trasformazioni multivariate. Ad esempio, avete due misure denominate `x` and e `y` una trasformazione uguale a. `z` `x + y + pretrigger(y)` La tabella seguente mostra i valori per `x` e `z` dalle 9:00 alle 9:15. `y`

**Nota**  
Questo esempio presuppone che i valori delle misurazioni arrivino in ordine cronologico. Ad esempio, il valore di `x` per 09:00 AM arriva prima del valore di `x` 09:05.
Se i punti dati per le 9:05 arrivano prima dei punti dati per le 9:00, `z` non viene calcolato alle 9:05.
Se il valore di `x` 9:05 AM arriva prima del valore di 09:00 AM e i valori di arrivano in `x` ordine cronologico, è uguale alle 9:05. `y` `z` `22 = 20 + 1 + 1`


|  | 09:00 | 09:05 | 09:10 | 09:15 | 
| --- | --- | --- | --- | --- | 
|  `x`  |  10  |  20  |    |  30  | 
|  `y`  |  1  |  2  |  3  |    | 
|  `z = x + y + pretrigger(y)`  |  `y`non riceve alcun punto dati prima delle 09:00. Pertanto, `z` non viene calcolato alle 09:00.  |  23 = 20 \$1 2 \$1 1 `pretrigger(y)`è uguale a 1.  |  25 = 20 \$1 3 \$1 2 `x`non riceve un nuovo punto dati. `pretrigger(y)`è uguale a 2.  |  36 = 30 \$1 3 \$1 3 `y`non riceve un nuovo punto dati. Pertanto, è `pretrigger(y)` uguale a 3 alle 09:15.  | 

# Utilizza le funzioni di data e ora nelle espressioni delle formule
Usa le funzioni di data e ora

Nelle [trasformazioni](transforms.md) e nelle [metriche](metrics.md), puoi utilizzare le funzioni di data e ora nei seguenti modi:
+ Recupera il timestamp corrente di un punto dati in UTC o nel fuso orario locale.
+ Costruisci timestamp con argomenti, come, e. `year` `month` `day_of_month`
+ Estrai un periodo di tempo, ad esempio un anno o un mese, con l'argomento. `unix_time`


| Funzione | Description | 
| --- | --- | 
|  `now()`  |  Restituisce la data e l'ora correnti, in secondi, nel formato Unix epoch.  | 
|  `timestamp()`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-date-and-time-functions.html)  | 
|  `mktime(time_zone, year, month, day_of_month, hour, minute, second)`  |  Restituisce il tempo di input in secondi, nel formato Unix epoch. Per l'utilizzo di questa funzione si applicano i seguenti requisiti: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-date-and-time-functions.html) Per l'utilizzo di questa funzione si applicano i seguenti limiti: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-date-and-time-functions.html) Esempi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-date-and-time-functions.html)  | 
|  `localtime(unix_time, time_zone)`  |  Restituisce l'anno, il giorno del mese, il giorno della settimana, il giorno dell'anno, l'ora, il minuto o il secondo nel fuso orario specificato dall'ora Unix. Per l'utilizzo di questa funzione si applicano i seguenti requisiti: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-date-and-time-functions.html) Esempio di risposta: `2007-12-03T10:15:30+01:00[Europe/Paris]` `localtime(unix_time, time_zone)`non è una funzione autonoma. Le `sec()` funzioni `year()``mon()`,`mday`,`wday()`, `yday()``hour()`,`minute()`,, e prendono `localtime(unix_time, time_zone)` come argomento. Esempi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-sitewise/latest/userguide/expression-date-and-time-functions.html)  | 
|  `year(localtime(unix_time, time_zone)`  |  Restituisce l'anno da`localtime(unix_time, time_zone)`.  | 
|  `mon(localtime(unix_time, time_zone))`  |  Restituisce il mese da`localtime(unix_time, time_zone)`.  | 
|  `mday(localtime(unix_time, time_zone))`  |  Restituisce il giorno del mese da`localtime(unix_time, time_zone)`.  | 
|  `wday(localtime(unix_time, time_zone))`  |  Restituisce il giorno della settimana da`localtime(unix_time, time_zone)`.  | 
|  `yday(localtime(unix_time, time_zone))`  |  Restituisce il giorno dell'anno da`localtime(unix_time, time_zone)`.  | 
|  `hour(localtime(unix_time, time_zone))`  |  Restituisce l'ora da`localtime(unix_time, time_zone)`.  | 
|  `minute(localtime(unix_time, time_zone))`  |  Restituisce il minuto da`localtime(unix_time, time_zone)`.  | 
|  `sec(localtime(unix_time, time_zone))`  |  Restituisce il secondo da`localtime(unix_time, time_zone)`.  | 

## Formati di fuso orario supportati


È possibile specificare l'argomento del fuso orario nei seguenti modi:
+ Scostamento del fuso orario: specifica `'Z'` l'UTC o un offset (`'+2'`o). `'-5'`
+ Offset IDs : combina un'abbreviazione del fuso orario e un offset. Ad esempio `'GMT+2'` e `'UTC-01:00'`. L'abbreviazione del fuso orario deve contenere solo tre lettere.
+ Basato sulla regione IDs : ad esempio, `'Etc/GMT+12'` e`'Pacific/Pago_Pago'`.

### Abbreviazioni dei fusi orari supportate


Le funzioni di data e ora supportano le seguenti abbreviazioni del fuso orario di tre lettere: 
+ EST - - 05:00
+ SAB -- 10:00
+ SAB - 07:00
+ ACT - Australia/Darwin
+ AET - Australia/Sydney
+ AT - \$1Aires America/Argentina/Buenos
+ ARTE - Africa/Cairo
+ AST - America/Anchorage
+ BET - America/San Paolo
+ BST - Asia/Dacca
+ CAT - Africa/Harare
+ CET - Europa/Parigi
+ CNT - America/St. Johns
+ CST - America/Chicago
+ CTT - Asia/Shanghai 
+ EAT - Africa/Addis\$1Ababa
+ DIETA - America/Indiana/Indianapolis
+ IST - Asia/Calcutta
+ JST - Asia/Tokyo
+ MIT - Pacifico/Apia
+ NET - Asia/Erevan
+ NST - Pacifico/Auckland
+ PLT - Asia/Karachi
+ PRT - America/Portorico
+ PST - America/Los Angeles
+ SST - Pacifico/Guadalcanal
+ VST - Asia/Ho\$1Chi\$1Minh

### Supportato in base alla regione IDs


Le funzioni di data e ora supportano le seguenti funzioni basate sulla regione IDs, organizzate in base alla loro relazione con UTC\$1 00:00:
+ ETC/GMT\$112 (UTC- 12:00)
+ Pacifico/Pago\$1Pago (UTC- 11:00)
+ Pacifico/Samoa (UTC- 11:00)
+ Pacifico/Niue (UTC- 11:00)
+ Stati Uniti/Samoa (UTC- 11:00)
+ ETC/GMT\$111 (UTC- 11:00)
+ Pacifico/Midway (UTC- 11:00)
+ Pacifico/Honolulu (UTC- 10:00)
+ Pacifico/Rarotonga (UTC- 10:00)
+ Pacifico/Tahiti (UTC- 10:00)
+ Pacifico/Johnston (UTC- 10:00)
+ Stati Uniti/Hawaii (UTC- 10:00)
+ Sistema V/ HST10 (UTC- 10:00)
+ ETC/GMT\$110 (UTC- 10:00)
+ Pacifico/Marchesi (UTC- 09:30)
+ ETC/GMT\$19 (UTC- 09:00)
+ Pacifico/Gambier (UTC- 09:00)
+ America/Atka (UTC- 09:00)
+ Sistema V/ YST9 (UTC- 09:00)
+ America/Adak (UTC- 09:00)
+ Stati Uniti/Aleutine (UTC- 09:00)
+ ETC/GMT\$18 (UTC- 08:00)
+ Stati Uniti/Alaska (UTC- 08:00)
+ America/Juneau (UTC- 08:00)
+ America/Metlakatla (UTC- 08:00)
+ America/Yakutat (UTC- 08:00)
+ Pacifico/Pitcairn (UTC- 08:00)
+ America/Sitka (UTC- 08:00)
+ America/Anchorage (UTC- 08:00)
+ Sistema V/ PST8 (UTC- 08:00)
+ America/Nome (UTC- 08:00)
+ Sistema V/ YST9 YDT (UTC- 08:00)
+ Canada/Yukon (UTC- 07:00)
+ Stati Uniti/Pacifico - Nuovo (UTC- 07:00)
+ ETC/GMT\$17 (UTC- 07:00)
+ Stati Uniti/Arizona (UTC- 07:00)
+ America/Dawson\$1Creek (UTC- 07:00)
+ Canada/Pacifico (UTC- 07:00)
+ PST8PDT (UTC- 07:00)
+ Sistema V/ MST7 (UTC- 07:00)
+ America/Dawson (UTC- 07:00)
+ Messico/ BajaNorte (UTC- 07:00)
+ America/Tijuana (UTC- 07:00)
+ America/Creston (UTC- 07:00)
+ America/Hermosillo (UTC- 07:00)
+ America/Santa Isabel (UTC- 07:00)
+ America/Vancouver (UTC- 07:00)
+ America/Ensenada (UTC- 07:00)
+ America/Phoenix (UTC- 07:00)
+ America/Whitehorse (UTC- 07:00)
+ America/Fort\$1Nelson (UTC- 07:00)
+ Sistema V/ PST8 PDT (UTC- 07:00)
+ America/Los Angeles (UTC- 07:00)
+ Stati Uniti/Pacifico (UTC- 07:00)
+ America/El Salvador (UTC- 06:00)
+ America/Guatemala (UTC- 06:00)
+ America/Belize (UTC- 06:00)
+ America/Managua (UTC- 06:00)
+ America/Tegucigalpa (UTC- 06:00)
+ ETC/GMT\$16 (UTC- 06:00)
+ Pacifico/Pasqua (UTC- 06:00)
+ Messico/ BajaSur (UTC- 06:00)
+ America/Regina (UTC- 06:00)
+ America/Denver (UTC- 06:00)
+ Pacifico/Galapagos (UTC- 06:00)
+ America/Yellowknife (UTC- 06:00)
+ America/Swift\$1Current (UTC- 06:00)
+ America/Inuvik (UTC- 06:00)
+ America/Mazatlán (UTC- 06:00)
+ America/Boise (UTC- 06:00)
+ America/Costa-Rica (UTC- 06:00)
+ MST7MDT (UTC- 06:00)
+ Sistema V/ CST6 (UTC- 06:00)
+ America/Chihuahua (UTC- 06:00)
+ America/Ojinaga (UTC- 06:00)
+ Cile/ EasterIsland (UTC- 06:00)
+ Stati Uniti/Mountain (UTC- 06:00)
+ America/Edmonton (UTC- 06:00)
+ Canada/Montagna (UTC- 06:00)
+ America/Cambridge\$1Bay (UTC- 06:00)
+ Navajo (UTC- 06:00)
+ Sistema V/ MST7 MDT (UTC- 06:00)
+ Canada/Saskatchewan (UTC- 06:00)
+ America/Shiprock (UTC- 06:00)
+ America/Panama (UTC- 05:00)
+ America/Chicago (UTC- 05:00)
+ America/Eirunepé (UTC- 05:00)
+ ETC/GMT\$15 (UTC- 05:00)
+ Messico/Generale (UTC- 05:00)
+ America/Porto\$1Acre (UTC- 05:00)
+ America/Guayaquil (UTC- 05:00)
+ America/Rankin\$1Inlet (UTC- 05:00)
+ Stati Uniti/Central (UTC- 05:00)
+ America/Rainy\$1River (UTC- 05:00)
+ America/Indiana/Knox(UTC- 05:00)
+ America/North\$1Dakota/Beulah(UTC- 05:00)
+ America/Monterrey (UTC- 05:00)
+ America/Giamaica (UTC- 05:00)
+ America/Atikokan (UTC- 05:00)
+ America/Coral\$1Harbour (UTC- 05:00)
+ America/North\$1Dakota/Center(UTC- 05:00)
+ America/Cayman (UTC- 05:00)
+ America/Indiana/Tell\$1Città (UTC- 05:00)
+ America/Città del Messico (UTC- 05:00)
+ America/Matamoros (UTC- 05:00)
+ CST6CDT (UTC- 05:00)
+ America/Knox\$1in (UTC- 05:00)
+ America/Bogotà (UTC- 05:00)
+ America/Menominee (UTC- 05:00)
+ America/Resolute (UTC- 05:00)
+ Sistema V/ EST5 (UTC- 05:00)
+ Canada/Central (UTC- 05:00)
+ Brasile/Acre (UTC- 05:00)
+ America/Cancún (UTC- 05:00)
+ America/Lima (UTC- 05:00)
+ America/Bahia Banderas (UTC- 05:00)
+ Stati Uniti/Indiana-Starke (UTC- 05:00)
+ America/Rio\$1Branco (UTC- 05:00)
+ Sistema V/ CST6 CDT (UTC- 05:00)
+ Giamaica (UTC- 05:00)
+ America/Mérida (UTC- 05:00)
+ America/North\$1Dakota/New\$1Salem (UTC- 05:00)
+ America/Winnipeg (UTC- 05:00)
+ America/Cuiabá (UTC- 04:00)
+ America/Marigot (UTC- 04:00)
+ America/Indiana/Petersburg(UTC- 04:00)
+ Cile/Continentale (UTC- 04:00)
+ America/Grand\$1Turk (UTC- 04:00)
+ Cuba (UTC- 04:00)
+ ETC/GMT\$14 (UTC- 04:00)
+ America/Manaus (UTC- 04:00)
+ America/Fort\$1Wayne (UTC- 04:00)
+ America/Saint Thomas (UTC- 04:00)
+ America/Anguilla (UTC- 04:00)
+ America/L'Avana (UTC- 04:00)
+ Stati Uniti/Michigan (UTC- 04:00)
+ America/Barbados (UTC- 04:00)
+ America/Louisville (UTC- 04:00)
+ America/Curacao (UTC- 04:00)
+ America/Guyana (UTC- 04:00)
+ America/Martinica (UTC- 04:00)
+ America/Porto\$1Rico (UTC- 04:00)
+ America/Port\$1of\$1Spain (UTC- 04:00)
+ Sistema V/ AST4 (UTC- 04:00)
+ America/Indiana/Vevay(UTC- 04:00)
+ America/Indiana/Vincennes(UTC- 04:00)
+ America/Kralendijk (UTC- 04:00)
+ America/Antigua (UTC- 04:00)
+ America/Indianapolis (UTC- 04:00)
+ America/Iqaluit (UTC- 04:00)
+ America/Saint Vincent (UTC- 04:00)
+ America/Kentucky/Louisville(UTC- 04:00)
+ America/Dominica (UTC- 04:00)
+ America/Asunción (UTC- 04:00)
+ EST5EDT (UTC- 04:00)
+ America/Nassau (UTC- 04:00)
+ America/Kentucky/Monticello(UTC- 04:00)
+ Brasile/Ovest (UTC- 04:00)
+ America/Aruba (UTC- 04:00)
+ America/Indiana/Indianapolis(UTC- 04:00)
+ America/Santiago (UTC- 04:00)
+ America/La\$1Paz (UTC- 04:00)
+ America/Thunder\$1Bay (UTC- 04:00)
+ America/Indiana/Marengo(UTC- 04:00)
+ America/Blanc-Sablon (UTC- 04:00)
+ America/Santo Domingo (UTC- 04:00)
+ Stati Uniti/Orientali (UTC- 04:00)
+ Canada/Est (UTC- 04:00)
+ America/ Port-au-Prince (UTC- 04:00)
+ America/Saint Barthelemy (UTC- 04:00)
+ America/Nipigon (UTC- 04:00)
+ Stati Uniti/Indiana orientale (UTC- 04:00)
+ America/Saint Lucia (UTC- 04:00)
+ America/Montserrat (UTC- 04:00)
+ America/Lower\$1Princes (UTC- 04:00)
+ America/Detroit (UTC- 04:00)
+ America/Tortola (UTC- 04:00)
+ America/Porto\$1Velho (UTC- 04:00)
+ America/Campo\$1Grande (UTC- 04:00)
+ America/Isole Vergini (UTC- 04:00)
+ America/Pangnirtung (UTC- 04:00)
+ America/Montréal (UTC- 04:00)
+ America/Indiana/Winamac(UTC- 04:00)
+ America/Boa Vista (UTC- 04:00)
+ America/Grenada (UTC- 04:00)
+ America/New York (UTC- 04:00)
+ America/Saint Kitts (UTC- 04:00)
+ America/Caracas (UTC- 04:00)
+ America/Guadalupa (UTC- 04:00)
+ America/Toronto (UTC- 04:00)
+ Sistema V/ EST5 EDT (UTC- 04:00)
+ America/Argentina/Catamarca(UTC- 03:00)
+ Canada/Atlantico (UTC- 03:00)
+ America/Argentina/Cordoba(UTC- 03:00)
+ America/Araguaina (UTC- 03:00)
+ America/Argentina/Salta(UTC- 03:00)
+ ETC/GMT\$13 (UTC- 03:00)
+ America/Montevideo (UTC- 03:00)
+ Brasile/Est (UTC- 03:00)
+ America/Argentina/Mendoza(UTC- 03:00)
+ America/Argentina/Rio\$1Gallegos (UTC- 03:00)
+ America/Catamarca (UTC- 03:00)
+ America/Córdoba (UTC- 03:00)
+ America/San Paolo (UTC- 03:00)
+ America/Argentina/Jujuy(UTC- 03:00)
+ America/Cayenne (UTC- 03:00)
+ America/Recife (UTC- 03:00)
+ America/Buenos Aires (UTC- 03:00)
+ America/Paramaribo (UTC- 03:00)
+ America/Moncton (UTC- 03:00)
+ America/Mendoza (UTC- 03:00)
+ America/Santarem (UTC- 03:00)
+ Atlantico/Bermuda (UTC- 03:00)
+ America/Maceió (UTC- 03:00)
+ Atlantico/Stanley (UTC- 03:00)
+ America/Halifax (UTC- 03:00)
+ Antartide/Rothera (UTC- 03:00)
+ America/Argentina/San\$1Luis (UTC- 03:00)
+ America/Argentina/Ushuaia(UTC- 03:00)
+ Antartide/Palmer (UTC- 03:00)
+ America/Punta\$1Arenas (UTC- 03:00)
+ America/Glace\$1Bay (UTC- 03:00)
+ America/Fortaleza (UTC- 03:00)
+ America/Thule (UTC- 03:00)
+ America/Argentina/La\$1Rioja (UTC- 03:00)
+ America/Belém (UTC- 03:00)
+ America/Jujuy (UTC- 03:00)
+ America/Bahia (UTC- 03:00)
+ America/Goose\$1Bay (UTC- 03:00)
+ America/Argentina/San\$1Juan (UTC- 03:00)
+ America/Argentina/ComodRivadavia(UTC- 03:00)
+ America/Argentina/Tucuman(UTC- 03:00)
+ America/Rosario (UTC- 03:00)
+ Sistema AST4 V/ADT (UTC- 03:00)
+ America/Argentina/Buenos\$1Aires (UTC- 03:00)
+ America/Saint Johns (UTC- 02:30)
+ Canada/Terranova (UTC- 02:30)
+ America/Miquelon (UTC- 02:00)
+ ETC/GMT\$12 (UTC- 02:00)
+ America/Godthab (UTC- 02:00)
+ America/Norfolk (UTC- 02:00)
+ Brasile/ DeNoronha (UTC- 02:00)
+ Atlantico/Georgia del Sud (UTC- 02:00)
+ ETC/GMT\$11 (UTC- 01:00)
+ Atlantico/Capo Verde (UTC- 01:00)
+ Pacifico/Kiritimati (UTC\$1 14:00)
+ ETC/GMT-14 (UTC\$1 14:00)
+ Pacifico/Fakaofo (UTC\$1 13:00)
+ Pacifico/Enderbury (UTC\$1 13:00)
+ Pacifico/Apia (UTC\$1 13:00)
+ Pacifico/Tongatapu (UTC\$1 13:00)
+ Etc/GMT-13 (UTC\$1 13:00)
+ NZ-CHAT (UTC\$1 12:45)
+ Pacifico/Chatham (UTC\$1 12:45)
+ Pacifico/Kwajalein (UTC\$1 12:00)
+ Antartide/ (UTC\$1 12:00) McMurdo 
+ Pacifico/Wallis (UTC\$1 12:00)
+ Pacifico/Figi (UTC\$1 12:00)
+ Pacifico/Funafuti (UTC\$1 12:00)
+ Pacifico/Nauru (UTC\$1 12:00)
+ Kwajalein (UTC\$1 12:00)
+ NZ (UTC\$1 12:00)
+ Pacifico/Wake (UTC\$1 12:00)
+ Antartide/South\$1Pole (UTC\$1 12:00)
+ Pacifico/Tarawa (UTC\$1 12:00)
+ Pacifico/Auckland (UTC\$1 12:00)
+ Asia/Kamchatka (UTC\$1 12:00)
+ Etc/GMT-12 (UTC\$1 12:00)
+ Asia/Anadyr (UTC\$1 12:00)
+ Pacifico/Majuro (UTC\$1 12:00)
+ Pacifico/Ponape (UTC\$1 11:00)
+ Pacifico/Bougainville (UTC\$1 11:00)
+ Antartide/Macquarie (UTC\$1 11:00)
+ Pacifico/Pohnpei (UTC\$1 11:00)
+ Pacifico/Efate (UTC\$1 11:00)
+ Pacifico/Norfolk (UTC\$1 11:00)
+ Asia/Magadan (UTC\$1 11:00)
+ Pacifico/Kosrae (UTC\$1 11:00)
+ Asia/Sakhalin (UTC\$1 11:00)
+ Pacifico/Noumea (UTC\$1 11:00)
+ ETC/GMT-11 (UTC\$1 11:00)
+ Asia/Srednekolymsk (UTC\$1 11:00)
+ Pacifico/Guadalcanal (UTC\$1 11:00)
+ Australia/Lord Howe (UTC\$1 10:30)
+ Australia/LHI (UTC\$1 10:30)
+ Australia/Hobart (UTC\$1 10:00)
+ Pacifico/Yap (UTC\$1 10:00)
+ Australia/Tasmania (UTC\$1 10:00)
+ Pacifico/Port\$1Moresby (UTC\$1 10:00)
+ Australia/ACT (UTC\$1 10:00)
+ Australia/Victoria (UTC\$1 10:00)
+ Pacifico/Chuuk (UTC\$1 10:00)
+ Australia/Queensland (UTC\$1 10:00)
+ Australia/Canberra (UTC\$1 10:00)
+ Australia/Currie (UTC\$1 10:00)
+ Pacifico/Guam (UTC\$1 10:00)
+ Pacifico/Truk (UTC\$1 10:00)
+ Australia/Nuovo Galles del Sud (UTC\$1 10:00)
+ Asia/Vladivostok (UTC\$1 10:00)
+ Pacifico/Saipan (UTC\$1 10:00)
+ Antartide/Dumont (UTC\$1 10:00DUrville )
+ Australia/Sydney (UTC\$1 10:00)
+ Australia/Brisbane (UTC\$1 10:00)
+ Etc/GMT-10 (UTC\$1 10:00)
+ Asia/Ust-Nera (UTC\$1 10:00)
+ Australia/Melbourne (UTC\$1 10:00)
+ Australia/Lindeman (UTC\$1 10:00)
+ Australia/Nord (UTC\$1 09:30)
+ Australia/Yancowinna (UTC\$1 09:30)
+ Australia/Adelaide (UTC\$1 09:30)
+ Australia/Broken\$1Hill (UTC\$1 09:30)
+ Australia/Sud (UTC\$1 09:30)
+ Australia/Darwin (UTC\$1 09:30)
+ ETC/GMT-9 (UTC\$1 09:00)
+ Pacifico/Palau (UTC\$1 09:00)
+ Asia/Chita (UTC\$1 09:00)
+ Asia/Dili (UTC\$1 09:00)
+ Asia/Jayapura (UTC\$1 09:00)
+ Asia/Yakutsk (UTC\$1 09:00)
+ Asia/Pyongyang (UTC\$1 09:00)
+ MERCOLEDÌ (UTC\$1 09:00)
+ Asia/Seul (UTC\$1 09:00)
+ Asia/Khandyga (UTC\$1 09:00)
+ Giappone (UTC\$1 09:00)
+ Asia/Tokyo (UTC\$1 09:00)
+ Australia/Eucla (UTC\$1 08:45)
+ Asia/Kuching (UTC\$1 08:00)
+ Asia/Chungking (UTC\$1 08:00)
+ ETC/GMT-8 (UTC\$1 08:00)
+ Australia/Perth (UTC\$1 08:00)
+ Asia/Macao (UTC\$1 08:00)
+ Asia/Macao (UTC\$1 08:00)
+ Asia/Choibalsan (UTC\$1 08:00)
+ Asia/Shanghai (UTC\$1 08:00)
+ Antartide/Casey (UTC\$1 08:00)
+ Asia/Ulan\$1Bator (UTC\$1 08:00)
+ Asia/Chongqing (UTC\$1 08:00)
+ Asia/Ulan Bator (UTC\$1 08:00)
+ Asia/Taipei (UTC\$1 08:00)
+ Asia/Manila (UTC\$1 08:00)
+ PRC (UTC\$1 08:00)
+ Asia/Ujung-Pandang (UTC\$1 08:00)
+ Asia/Harbin (UTC\$1 08:00)
+ Singapore (UTC\$1 08:00)
+ Asia/Brunei (UTC\$1 08:00)
+ Australia/Ovest (UTC\$1 08:00)
+ Asia/Hong Kong (UTC\$1 08:00)
+ Asia/Makassar (UTC\$1 08:00)
+ Hong Kong (UTC\$1 08:00)
+ Asia/Kuala Lumpur (UTC\$1 08:00)
+ Asia/Irkutsk (UTC\$1 08:00)
+ Asia/Singapore (UTC\$1 08:00)
+ Asia/Pontianak (UTC\$1 07:00)
+ ETC/GMT-7 (UTC\$1 07:00)
+ Asia/Phnom\$1Penh (UTC\$1 07:00)
+ Asia/Novosibirsk (UTC\$1 07:00)
+ Antartide/Davis (UTC\$1 07:00)
+ Asia/Tomsk (UTC\$1 07:00)
+ Asia/Giacarta (UTC\$1 07:00)
+ Asia/Barnaul (UTC\$1 07:00)
+ Indiano/Natale (UTC\$1 07:00)
+ Asia/Ho Chi Minh (UTC\$1 07:00)
+ Asia/Hovd (UTC\$1 07:00)
+ Asia/Bangkok (UTC\$1 07:00)
+ Asia/Vientiane (UTC\$1 07:00)
+ Asia/Novokuzneck (UTC\$1 07:00)
+ Asia/Krasnoyarsk (UTC\$1 07:00)
+ Asia/Saigon (UTC\$1 07:00)
+ Asia/Yangon (UTC\$1 06:30)
+ Asia/Yangon (UTC\$1 06:30)
+ Indiana/Cocos (UTC\$1 06:30)
+ Asia/Kashgar (UTC\$1 06:00)
+ ETC/GMT-6 (UTC\$1 06:00)
+ Asia/Almaty (UTC\$1 06:00)
+ Asia/Dacca (UTC\$1 06:00)
+ Asia/Omsk (UTC\$1 06:00)
+ Asia/Dacca (UTC\$1 06:00)
+ Indiana/Chagos (UTC\$1 06:00)
+ Asia/Qyzylorda (UTC\$1 06:00)
+ Asia/Bishkek (UTC\$1 06:00)
+ Antartide/Vostok (UTC\$1 06:00)
+ Asia/Urumqi (UTC\$1 06:00)
+ Asia/Thimbu (UTC\$1 06:00)
+ Asia/Thimphu (UTC\$1 06:00)
+ Asia/Kathmandu (UTC\$1 05:45)
+ Asia/Kathmandu (UTC\$1 05:45)
+ Asia/Calcutta (UTC\$1 05:30)
+ Asia/Colombo (UTC\$1 05:30)
+ Asia/Calcutta (UTC\$1 05:30)
+ Asia/Aqtau (UTC\$1 05:00)
+ ETC/GMT-5 (UTC\$1 05:00)
+ Asia/Samarcanda (UTC\$1 05:00)
+ Asia/Karachi (UTC\$1 05:00)
+ Asia/Ekaterinburg (UTC\$1 05:00)
+ Asia/Dushanbe (UTC\$1 05:00)
+ Indiana/Maldive (UTC\$1 05:00)
+ Asia/Orale (UTC\$1 05:00)
+ Asia/Taskent (UTC\$1 05:00)
+ Antartide/Mawson (UTC\$1 05:00)
+ Asia/Aktobe (UTC\$1 05:00)
+ Asia/Ashkhabad (UTC\$1 05:00)
+ Asia/Ashgabat (UTC\$1 05:00)
+ Asia/Atyrau (UTC\$1 05:00)
+ Indiana/Kerguelen (UTC\$1 05:00)
+ Iran (UTC\$1 04:30)
+ Asia/Teheran (UTC\$1 04:30)
+ Asia/Kabul (UTC\$1 04:30)
+ Asia/Yerevan (UTC\$1 04:00)
+ ETC/GMT-4 (UTC\$1 04:00)
+ Etc/GMT-4 (UTC\$1 04:00)
+ Asia/Dubai (UTC\$1 04:00)
+ Indiana/Riunione (UTC\$1 04:00)
+ Europa/Saratov (UTC\$1 04:00)
+ Europa/Samara (UTC\$1 04:00)
+ Indiana/Mahé (UTC\$1 04:00)
+ Asia/Baku (UTC\$1 04:00)
+ Asia/Muscat (UTC\$1 04:00)
+ Europa/Volgograd (UTC\$1 04:00)
+ Europa/Astrakhan (UTC\$1 04:00)
+ Asia/Tbilisi (UTC\$1 04:00)
+ Europa/Ulyanovsk (UTC\$1 04:00)
+ Asia/Aden (UTC\$1 03:00)
+ Africa/Nairobi (UTC\$1 03:00)
+ Europa/Istanbul (UTC\$1 03:00)
+ ETC/GMT-3 (UTC\$1 03:00)
+ Europa/Zaporozhye (UTC\$1 03:00)
+ Israele (UTC\$1 03:00)
+ Indiana/Comore (UTC\$1 03:00)
+ Antartide/Syowa (UTC\$1 03:00)
+ Africa/Mogadiscio (UTC\$1 03:00)
+ Europa/Bucarest (UTC\$1 03:00)
+ Africa/Asmeria (UTC\$1 03:00)
+ Europa/Mariehamn (UTC\$1 03:00)
+ Asia/Istanbul (UTC\$1 03:00)
+ Europa/Tiraspol (UTC\$1 03:00)
+ Europa/Mosca (UTC\$1 03:00)
+ Europa/Chisinau (UTC\$1 03:00)
+ Europa/Helsinki (UTC\$1 03:00)
+ Asia/Beirut (UTC\$1 03:00)
+ Asia/Tel Aviv (UTC\$1 03:00)
+ Africa/Gibuti (UTC\$1 03:00)
+ Europa/Simferopol (UTC\$1 03:00)
+ Europa/Sofia (UTC\$1 03:00)
+ Asia/Gaza (UTC\$1 03:00)
+ Africa/Asmara (UTC\$1 03:00)
+ Europa/Riga (UTC\$1 03:00)
+ Asia/Bagdad (UTC\$1 03:00)
+ Asia/Damasco (UTC\$1 03:00)
+ Africa/Dar\$1es\$1Salaam (UTC\$1 03:00)
+ Africa/Addis\$1Abeba (UTC\$1 03:00)
+ Europa/Uzhgorod (UTC\$1 03:00)
+ Asia/Gerusalemme (UTC\$1 03:00)
+ Asia/Riyad (UTC\$1 03:00)
+ Asia/Kuwait (UTC\$1 03:00)
+ Europa/Kirov (UTC\$1 03:00)
+ Africa/Kampala (UTC\$1 03:00)
+ Europa/Minsk (UTC\$1 03:00)
+ Asia/Qatar (UTC\$1 03:00)
+ Europa/Kiev (UTC\$1 03:00)
+ Asia/Bahrein (UTC\$1 03:00)
+ Europa/Vilnius (UTC\$1 03:00)
+ Indiana/Antananarivo (UTC\$1 03:00)
+ Indiana/Mayotte (UTC\$1 03:00)
+ Europa/Tallinn (UTC\$1 03:00)
+ Turchia (UTC\$1 03:00)
+ Africa/Juba (UTC\$1 03:00)
+ Asia/Nicosia (UTC\$1 03:00)
+ Asia/Famagosta (UTC\$1 03:00)
+ S-DOM (UTC\$1 03:00)
+ EET (UTC\$1 03:00)
+ Asia/Hebron (UTC\$1 03:00)
+ Asia/Amman (UTC\$1 03:00)
+ Europa/Nicosia (UTC\$1 03:00)
+ Europa/Atene (UTC\$1 03:00)
+ Africa/Cairo (UTC\$1 02:00)
+ Africa/Mbabane (UTC\$1 02:00)
+ Europa/Bruxelles (UTC\$1 02:00)
+ Europa/Varsavia (UTC\$1 02:00)
+ CET (UTC\$1 02:00)
+ Europa/Lussemburgo (UTC\$1 02:00)
+ ETC/GMT-2 (UTC\$1 02:00)
+ Libia (UTC\$1 02:00)
+ Africa/Kigali (UTC\$1 02:00)
+ Africa/Tripoli (UTC\$1 02:00)
+ Europa/Kaliningrad (UTC\$1 02:00)
+ Africa/Windhoek (UTC\$1 02:00)
+ Europa/Malta (UTC\$1 02:00)
+ Europa/Busingen (UTC\$1 02:00)
+ 
+ Europa/Skopje (UTC\$1 02:00)
+ Europa/Sarajevo (UTC\$1 02:00)
+ Europa/Roma (UTC\$1 02:00)
+ Europa/Zurigo (UTC\$1 02:00)
+ Europa/Gibilterra (UTC\$1 02:00)
+ Africa/Lubumbashi (UTC\$1 02:00)
+ Europa/Vaduz (UTC\$1 02:00)
+ Europa/Lubiana (UTC\$1 02:00)
+ Europa/Berlino (UTC\$1 02:00)
+ Europa/Stoccolma (UTC\$1 02:00)
+ Europa/Budapest (UTC\$1 02:00)
+ Europa/Zagabria (UTC\$1 02:00)
+ Europa/Parigi (UTC\$1 02:00)
+ Africa/Ceuta (UTC\$1 02:00)
+ Europa/Praga (UTC\$1 02:00)
+ Antartide/Troll (UTC\$1 02:00)
+ Africa/Gaborone (UTC\$1 02:00)
+ Europa/Copenaghen (UTC\$1 02:00)
+ Europa/Vienna (UTC\$1 02:00)
+ Europa/Tirana (UTC\$1 02:00)
+ INCONTRATO (UTC\$1 02:00)
+ Europa/Amsterdam (UTC\$1 02:00)
+ Africa/Maputo (UTC\$1 02:00)
+ Europa/San\$1Marino (UTC\$1 02:00)
+ Polonia (UTC\$1 02:00)
+ Europa/Andorra (UTC\$1 02:00)
+ Europa/Oslo (UTC\$1 02:00)
+ Europa/Podgorica (UTC\$1 02:00)
+ Africa/Bujumbura (UTC\$1 02:00)
+ Atlantico/Jan\$1Mayen (UTC\$1 02:00)
+ Africa/Maseru (UTC\$1 02:00)
+ Europa/Madrid (UTC\$1 02:00)
+ Africa/Blantyre (UTC\$1 02:00)
+ Africa/Lusaka (UTC\$1 02:00)
+ Africa/Harare (UTC\$1 02:00)
+ Africa/Khartum (UTC\$1 02:00)
+ Africa/Johannesburg (UTC\$1 02:00)
+ Europa/Belgrado (UTC\$1 02:00)
+ Europa/Bratislava (UTC\$1 02:00)
+ Artico/Longyearbyen (UTC\$1 02:00)
+ Egitto (UTC\$1 02:00)
+ Europa/Vaticano (UTC\$1 02:00)
+ Europa/Monaco (UTC\$1 02:00)
+ Europa/Londra (UTC\$1 01:00)
+ Etc/GMT-1 (UTC\$1 01:00)
+ Europa/Jersey (UTC\$1 01:00)
+ Europa/Guernsey (UTC\$1 01:00)
+ Europa/Isle\$1of\$1Man (UTC\$1 01:00)
+ Africa/Tunisi (UTC\$1 01:00)
+ Africa/Malabo (UTC\$1 01:00)
+ GB-Irlanda (UTC\$1 01:00)
+ Africa/Lagos (UTC\$1 01:00)
+ Africa/Algeri (UTC\$1 01:00)
+ IT (UTC\$1 01:00)
+ Portogallo (UTC\$1 01:00)
+ Africa/Sao\$1Tomé (UTC\$1 01:00)
+ Africa/N' Djamena (UTC\$1 01:00)
+ Atlantico/Fær Øer (UTC\$1 01:00)
+ Irlanda (UTC\$1 01:00)
+ Atlantico/Faroe (UTC\$1 01:00)
+ Europa/Dublino (UTC\$1 01:00)
+ Africa/Libreville (UTC\$1 01:00)
+ Africa/El\$1Aaiun (UTC\$1 01:00)
+ Africa/El\$1Aaiun (UTC\$1 01:00)
+ Africa/Douala (UTC\$1 01:00)
+ Africa/Brazzaville (UTC\$1 01:00)
+ Africa/Porto-Novo (UTC\$1 01:00)
+ Atlantico/Madeira (UTC\$1 01:00)
+ Europa/Lisbona (UTC\$1 01:00)
+ Atlantico/Canarie (UTC\$1 01:00)
+ Africa/Casablanca (UTC\$1 01:00)
+ Europa/Belfast (UTC\$1 01:00)
+ Africa/Luanda (UTC\$1 01:00)
+ Africa/Kinshasa (UTC\$1 01:00)
+ Africa/Bangui (UTC\$1 01:00)
+ UMIDO (UTC\$1 01:00)
+ Africa/Niamey (UTC\$1 01:00)
+ GMT (UTC\$1 00:00)
+ etc/GMT-0 (UTC\$1 00:00)
+ Atlantic/Sant' Elena (UTC\$1 00:00)
+ Etc/GMT\$10 (UTC\$1 00:00)
+ Africa/Banjul (UTC\$1 00:00)
+ ETC/GMT (UTC\$1 00:00)
+ Africa/Freetown (UTC\$1 00:00)
+ Africa/Bamako (UTC\$1 00:00)
+ Africa/Conakry (UTC\$1 00:00)
+ Universale (UTC\$1 00:00)
+ Africa/Nouakchott (UTC\$1 00:00)
+ UTC (UTC\$1 00:00)
+ Etc/Universal (UTC\$1 00:00)
+ Atlantico/Azzorre (UTC\$1 00:00)
+ Africa/Abidjan (UTC\$1 00:00)
+ Africa/Accra (UTC\$1 00:00)
+ ETC/UTC (UTC\$1 00:00)
+ GMT0 (UTC\$1 00:00)
+ Zulu (UTC\$1 00:00) Zulu (UTC\$1 00:00)
+ Africa/Ouagadougou (UTC\$1 00:00)
+ Atlantico/Reykjavík (UTC\$1 00:00)
+ Etc/Zulu (UTC\$1 00:00)
+ Islanda (UTC\$1 00:00)
+ Africa/Lomé (UTC\$1 00:00)
+ Greenwich (UTC\$1 00:00)
+ GMT0 Ecc/ (UTC\$1 00:00)
+ America/Danmarkshavn (UTC\$1 00:00)
+ Africa/Dakar (UTC\$1 00:00)
+ Africa/Bissau (UTC\$1 00:00)
+ Etc/Greenwich (UTC\$1 00:00)
+ Africa/Timbuctù (UTC\$1 00:00)
+ UTC (UTC\$1 00:00)
+ Africa/Monrovia (UTC\$1 00:00)
+ ETC/UTC (UTC\$1 00:00)

# Tutorial sulle espressioni di formule


Puoi seguire questi tutorial per utilizzare le espressioni delle formule in. AWS IoT SiteWise

**Topics**
+ [

## Usa le stringhe nelle formule
](#use-strings-in-formulas)
+ [

## Filtra i punti dati
](#filter-data)
+ [

## Conta i punti dati che corrispondono a una condizione
](#count-filtered-data)
+ [

## Dati tardivi nelle formule
](#late-data)
+ [

## Qualità dei dati nelle formule
](#data-quality)
+ [

## Valori indefiniti, infiniti e di overflow
](#undefined-values)

## Usa le stringhe nelle formule


È possibile utilizzare le stringhe nelle espressioni delle formule. È inoltre possibile inserire stringhe da variabili che fanno riferimento alle proprietà degli attributi e delle misurazioni.

**Importante**  
<a name="formula-output-rules"></a>Le espressioni delle formule possono generare solo valori doppi o stringhe. Le espressioni annidate possono generare altri tipi di dati, ad esempio stringhe, ma la formula nel suo insieme deve restituire un numero o una stringa. È possibile utilizzare la [funzione jp](expression-string-functions.md#jp-definition) per convertire una stringa in un numero. Il valore booleano deve essere 1 (vero) o 0 (falso). Per ulteriori informazioni, consulta [Valori indefiniti, infiniti e di overflow](#undefined-values).

AWS IoT SiteWise fornisce le seguenti funzionalità di espressione delle formule che è possibile utilizzare per operare sulle stringhe:
+ [Stringhe letterali](expression-literals.md#string-literal-definition)
+ L'[operatore di indice](expression-operators.md#index-operator-definition) () `s[index]`
+ L'[operatore slice](expression-operators.md#slice-operator-definition) () `s[start:end:step]`
+ [Funzioni di confronto](expression-comparison-functions.md)[, che è possibile utilizzare per confrontare le stringhe in base all'ordine lessicografico](https://en.wikipedia.org/wiki/Lexicographic_order)
+ [Funzioni di stringa](expression-string-functions.md), che includono la `jp` funzione in grado di analizzare oggetti JSON serializzati e convertire stringhe in numeri

## Filtra i punti dati


Puoi utilizzare la [funzione if](expression-conditional-functions.md#if-definition) per filtrare i punti dati che non soddisfano una condizione. La `if` funzione valuta una condizione e restituisce valori `true` e `false` risultati diversi. È possibile utilizzare la [costante none](expression-constants.md#none-definition) come output per un caso di una `if` funzione per scartare il punto dati relativo a quel caso.

**Per filtrare i punti dati che corrispondono a una condizione**
+ Crea una trasformazione che utilizzi la `if` funzione per definire una condizione che verifichi se una condizione è soddisfatta e la restituisca `none` come `result_if_false` valore `result_if_true` or.

**Example Esempio: filtra i punti dati in cui l'acqua non bolle**  
Prendiamo in considerazione uno scenario in cui si esegue `temp_c` una misurazione che fornisce la temperatura (in gradi Celsius) dell'acqua in una macchina. Puoi definire la seguente trasformazione per filtrare i punti dati in cui l'acqua non bolle:  
+ Trasforma: `boiling_temps = if(gte(temp_c, 100), temp_c, none)` — Restituisce la temperatura se è maggiore o uguale a 100 gradi Celsius, altrimenti non restituisce alcun punto dati.

## Conta i punti dati che corrispondono a una condizione


È possibile utilizzare [le funzioni di confronto](expression-comparison-functions.md) e [sum ()](expression-aggregation-functions.md#sum-definition) per contare il numero di punti dati per i quali una condizione è vera.

**Per contare i punti dati che corrispondono a una condizione**

1. Crea una trasformazione che utilizza una funzione di confronto per definire una condizione di filtro su un'altra proprietà.

1. Creare un parametro che sommi i punti dati in cui tale condizione è soddisfatta.

**Example Esempio: contare il numero di punti dati in cui l'acqua è in ebollizione.**  
Prendiamo in considerazione uno scenario in cui si esegue `temp_c` una misurazione che fornisce la temperatura (in gradi Celsius) dell'acqua in una macchina. È possibile definire le seguenti proprietà di trasformazione e parametro per contare il numero di punti dati in cui l'acqua è in ebollizione:  
+ Trasforma: `is_boiling = gte(temp_c, 100)` — Restituisce `1` se la temperatura è maggiore o uguale a 100 gradi Celsius, altrimenti restituisce. `0`
+ Metrica: `boiling_count = sum(is_boiling)` — Restituisce il numero di punti dati in cui l'acqua bolle.

## Dati tardivi nelle formule


AWS IoT SiteWise supporta l'inserimento tardivo di dati risalenti fino a 7 giorni fa. Quando AWS IoT SiteWise riceve dati in ritardo, ricalcola i valori esistenti per qualsiasi metrica che inserisce i dati in ritardo in una finestra precedente. Questi ricalcoli comportano costi di elaborazione dei dati.

**Nota**  
Quando AWS IoT SiteWise calcola proprietà che immettono dati tardivi, utilizza l'espressione della formula corrente di ogni proprietà.

Dopo aver AWS IoT SiteWise ricalcolato una finestra precedente per una metrica, sostituisce il valore precedente per quella finestra. Se hai abilitato le notifiche per quella metrica, emette AWS IoT SiteWise anche una notifica del valore della proprietà. Ciò significa che è possibile ricevere una nuova notifica di aggiornamento del valore della proprietà per la stessa proprietà e timestamp per cui è stata precedentemente ricevuta una notifica. Se le applicazioni o i data lake utilizzano notifiche sui valori delle proprietà, devi aggiornare il valore precedente con il nuovo valore in modo che i dati siano accurati.

## Qualità dei dati nelle formule


In AWS IoT SiteWise, ogni punto dati ha un codice di qualità, che può essere uno dei seguenti:
+ `GOOD`— I dati non sono interessati da alcun problema.
+ `BAD`— I dati sono interessati da un problema come il guasto del sensore.
+ `UNCERTAIN`— I dati sono influenzati da un problema come l'imprecisione del sensore.

AWS IoT SiteWise utilizza solo dati `GOOD` di qualità quando calcola trasformazioni e metriche. AWS IoT SiteWise restituisce solo dati di `GOOD` qualità per calcoli di successo. Se un calcolo non ha esito positivo, AWS IoT SiteWise non emette un punto dati per quel calcolo. Ciò può verificarsi se un calcolo genera un valore indefinito, infinito o di overflow.

Per ulteriori informazioni su come eseguire query sui dati e filtrare in base alla qualità dei dati, vedere [Interroga i dati da AWS IoT SiteWise](query-industrial-data.md).

## Valori indefiniti, infiniti e di overflow


Alcune espressioni di formule (ad esempio `x / 0``sqrt(-1)`, o`log(0)`) calcolano valori non definiti in un sistema numerico reale, infiniti o al di fuori dell'intervallo supportato da. AWS IoT SiteWise Quando l'espressione di una proprietà di asset calcola un valore indefinito, infinito o di overflow, AWS IoT SiteWise non genera un punto dati per quel calcolo.

AWS IoT SiteWise inoltre non emette un punto dati se calcola un valore non numerico come risultato di un'espressione di formula. Ciò significa che se definisci una formula che calcola una stringa, una matrice o la [costante none](expression-constants.md#none-definition), AWS IoT SiteWise non genera un punto dati per quel calcolo.

**Example Esempi**  
Ciascuna delle seguenti espressioni di formula restituisce un valore che non AWS IoT SiteWise può essere rappresentato come numero. AWS IoT SiteWise non genera un punto dati quando calcola queste espressioni di formule.  
+ `x / 0`non è definito.
+ `log(0)`non è definito.
+ `sqrt(-1)`non è definito in un sistema numerico reale.
+ `"hello" + " world"`è una stringa.
+ `jp('{"values":[3,6,7]}', '$.values')`è un array.
+ `if(gte(temp, 300), temp, none)`è `none` quando `temp` è inferiore a`300`.