---
title: "Statistiche e Info valore"
description: "Statistiche e Info valore nello script TapHome: CurrentValueTime, PreviousValue, LastKnownValue, History.Values dei periodi conclusi, quanti periodi vengono conservati, esempi."
url: "https://taphome.com/it/docs/script/value-info/"
language: it
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["scripting-language","variables","statistics","value-info","history"]
  questions: ["Come si usa una statistica di un dispositivo in uno script TapHome?","Come ottengo l'ultimo valore noto di un dispositivo che ora è NaN?","Da quanto tempo il valore di un dispositivo non cambia?","Come leggo in uno script il valore di ieri di una statistica?","Quanti periodi conclusi conserva una statistica?","Come sommo le precipitazioni delle ultime 48 ore da una statistica giornaliera della pioggia?"]
---

# Statistiche e Info valore

Statistiche e Info valore negli script TapHome: il valore di una statistica, l'ora dell'ultima modifica, il valore precedente e l'ultimo valore noto e i valori dei periodi conclusi.

Ultimo aggiornamento: 2026-11-06

Oltre al semplice valore di un dispositivo, una variabile di script può contenere una statistica del dispositivo oppure informazioni su un valore: quando è cambiato l'ultima volta, il suo valore precedente e i valori dei periodi conclusi. Entrambi si scelgono nel selettore dei valori del dispositivo nell'editor degli script.

## Statistiche

Oltre ai semplici valori del dispositivo, il selettore dei valori del dispositivo offre anche le statistiche del dispositivo (sezione **Statistiche**): le statistiche che l'utente ha attivato sul dispositivo o che il dispositivo fornisce da sé, per esempio il minimo, il massimo, la media, il conteggio o la somma di un valore in un periodo. Una variabile scelta in questo modo contiene il valore di quella statistica:

- Una statistica di tipo **Periodo attuale**, per esempio la media dell'ora corrente, si calcola dall'inizio del periodo in corso — l'ora, il giorno o il mese — fino ad adesso.
- Una statistica di tipo **Periodo fino ad adesso**, per esempio la media delle ultime 24 ore, si calcola su una finestra mobile della lunghezza indicata che termina adesso.

```taphome
# Se è stata scelta come media oraria di Temperatura (periodo attuale)
IF Se > 25
    RETURN(1);
END
0;
```

I valori dei periodi conclusi non fanno parte della statistica stessa; leggili dall'[Info valore](https://taphome.com/it/docs/script/value-info/#value-info) della statistica.

## Info valore

Le variabili di ingresso delle smart rule Equazione, Formula e Script, della condizione limitante Formula e dei testi delle notifiche si possono scegliere anche come Info valore; il selettore le elenca come **Info valore di***nome del valore*, sia per un semplice valore del dispositivo sia per una statistica di tipo **Periodo attuale**. Una variabile di questo tipo non contiene un numero, ma informazioni sul valore:

| Proprietà | Tipo | Contenuto |
|---|---|---|
| `Current` | `currentvalueinfo` | Il valore attuale e quello precedente, vedi [Valore attuale e precedente](https://taphome.com/it/docs/script/value-info/#current-and-previous-value). Compilato per un semplice valore del dispositivo, `Null` per una statistica. |
| `History` | `historyvalues` | Valori dei periodi conclusi, vedi [Storico di una statistica](https://taphome.com/it/docs/script/value-info/#history-of-a-statistic). Compilato per una statistica con storico, `Null` per un semplice valore del dispositivo. |

L'Info valore non contiene il valore stesso. Per lavorare insieme con il valore e con le sue informazioni, aggiungi il valore del dispositivo allo script due volte: una volta come valore (per esempio `Se`) e una volta come Info valore (per esempio `SeInfo`).

**Disponibile** — TapHome Next 2026.1.36599+.

## Valore attuale e precedente

`Current` descrive l'ultima modifica del valore:

| Proprietà | Tipo | Contenuto |
|---|---|---|
| `CurrentValueTime` | `datetime` | Quando il valore è passato al valore attuale. Se il dispositivo invia di nuovo lo stesso valore, l'ora non si sposta. |
| `PreviousValue` | qualsiasi | Il valore prima dell'ultima modifica; può essere `NaN` o `Null`. |
| `PreviousValueTime` | `datetime` | Quando il valore è passato a `PreviousValue`. |
| `LastKnownValue` | qualsiasi | Il valore precedente più recente che non era né `NaN` né `Null`. |
| `LastKnownValueTime` | `datetime` | Quando il valore è passato a `LastKnownValue`. |

`Current` è `Null` finché il valore non cambia per la prima volta — controllalo con `ISNULL` prima di leggerne le proprietà.

**Esempio — una finestra aperta da più di 10 minuti**

```taphome
# Wi = contatto finestra (1 = aperto), WiInfo = Info valore del contatto finestra
IF ISNULL(WiInfo.Current)
    RETURN(0);
END
IF Wi = 1 AND WiInfo.Current.CurrentValueTime < DATETIMEADD(NOW(), 0, 0, 0, 0, -10)
    RETURN(1);
END
0;
```

**Esempio — il valore sale o scende**

```taphome
# Se = Temperatura, SeInfo = Info valore di Temperatura
IF ISNULL(SeInfo.Current) OR ISNULL(SeInfo.Current.LastKnownValue)
    RETURN(0);
END
VAR change := Se - SeInfo.Current.LastKnownValue;
IF change > 0
    RETURN(1);
ELSEIF change < 0
    RETURN(-1);
END
0;
```

## Storico di una statistica

Per una statistica di tipo **Periodo attuale**, `History` contiene i valori dei periodi già conclusi:

| Proprietà | Tipo | Contenuto |
|---|---|---|
| `Values` | collezione | `Values[0]` è l'ultimo periodo concluso, `Values[1]` il periodo precedente e così via. Un periodo senza dati è `Null`. Il periodo in corso non è incluso — è il valore della statistica stessa. |
| `FirstPeriodStartTime` | `datetime` | Inizio del periodo di `Values[0]`. |

Quanti periodi vengono conservati dipende dal periodo della statistica e dal fatto che per essa sia attiva la registrazione dello storico — l'interruttore dello storico della statistica nella pagina **Statistiche** del dispositivo:

| Periodo | Periodi conservati, registrazione dello storico attiva | Periodi conservati, registrazione dello storico disattivata |
|---|---|---|
| 5 minuti | 36 (3 ore) | 3 |
| 10 minuti | 18 (3 ore) | 3 |
| 15 minuti | 12 (3 ore) | 3 |
| 1 ora | 48 (2 giorni) | 3 |
| 3 ore | 17 (circa 2 giorni) | 3 |
| 1 giorno | 35 | 3 |
| 1 mese | 25 | 3 |
| 1 anno | 10 | 3 |

Per qualsiasi altro periodo (1, 2, 3 e 30 minuti, 12 ore, 2 e 3 giorni, 1 settimana, 1 trimestre) e per una statistica di tipo **Periodo fino ad adesso**, `History` è `Null`. `Values` può essere più corta del numero di periodi conservati, per esempio poco dopo l'attivazione della statistica — controlla `LENGTH` prima di leggere un indice che potrebbe non esistere.

**Esempio — il consumo di oggi finora rispetto a tutto ieri**

```taphome
# En = somma giornaliera di Energia (periodo attuale), EnInfo = Info valore della stessa statistica
VAR yesterday := GETAT(EnInfo.History.Values, 0);
IF ISNULL(yesterday)
    RETURN(NaN);
END
En - yesterday;
```

**Esempio — consumo medio giornaliero degli ultimi 7 giorni**

```taphome
# EnInfo = Info valore della somma giornaliera di Energia (periodo attuale)
AVG(COPY(EnInfo.History.Values, 0, MIN(7, LENGTH(EnInfo.History.Values))));
```

`COPY` prende i primi 7 giorni — `MIN` copre uno storico più corto di 7 giorni, perché `COPY` oltre la fine della collezione è un errore — e `AVG` salta i giorni senza dati. `MIN`, `MAX` e `AVG` saltano `Null`, quindi si può usare anche direttamente un intero storico:

```taphome
# SeInfo = Info valore del massimo orario di Temperatura (periodo attuale)
MAX(SeInfo.History.Values);
# Result: the highest temperature of the kept hours
```

**Vedi anche** — [Variabili e costanti](https://taphome.com/it/docs/script/variables/), [MIN, MAX e AVG](https://taphome.com/it/docs/script/mathematical-functions/#min), [COPY](https://taphome.com/it/docs/script/text-string-and-byte-array/#copy).
