---
title: "Statistici și Value info"
description: "Statistici și Value info în scriptul TapHome: CurrentValueTime, PreviousValue, LastKnownValue, History.Values ale perioadelor încheiate, câte perioade se păstrează, exemple."
url: "https://taphome.com/ro/docs/script/value-info/"
language: ro
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["scripting-language","variables","statistics","value-info","history"]
  questions: ["Cum se folosește o statistică a unui dispozitiv într-un script TapHome?","Cum se obține ultima valoare cunoscută a unui dispozitiv care acum este NaN?","De cât timp nu s-a schimbat valoarea unui dispozitiv?","Cum se citește într-un script valoarea de ieri a unei statistici?","Câte perioade încheiate păstrează o statistică?","Cum adun precipitațiile din ultimele 48 de ore dintr-o statistică zilnică a ploii?"]
---

# Statistici și Value info

Statistici și Value info în scripturile TapHome: valoarea unei statistici, momentul ultimei modificări, valoarea anterioară și ultima valoare cunoscută și valorile perioadelor încheiate.

Ultima actualizare: 2026-11-06

Pe lângă valoarea simplă a unui dispozitiv, o variabilă de script poate conține o statistică a dispozitivului sau informații despre o valoare: când s-a schimbat ultima dată, valoarea ei anterioară și valorile perioadelor încheiate. Ambele se aleg în lista de selecție a valorilor dispozitivului din editorul de scripturi.

## Statistici

Pe lângă valorile simple ale dispozitivului, lista de selecție a valorilor dispozitivului oferă și statisticile dispozitivului (secțiunea **Statistici**): statisticile pe care utilizatorul le-a activat pe dispozitiv sau pe care le oferă dispozitivul însuși, de exemplu minimul, maximul, media, numărul sau suma unei valori pe o perioadă. O variabilă aleasă astfel conține valoarea acelei statistici:

- O statistică de tip **Perioada curentă**, de exemplu media orei curente, se calculează de la începutul perioadei în curs — ora, ziua sau luna — până acum.
- O statistică de tip **Perioada până acum**, de exemplu media ultimelor 24 de ore, se calculează pe o fereastră glisantă de lungimea dată, care se termină acum.

```taphome
# Se a fost aleasă ca media orară a dispozitivului Temperatură (perioada curentă)
IF Se > 25
    RETURN(1);
END
0;
```

Valorile perioadelor încheiate nu fac parte din statistica însăși; ele se citesc din [Value info](https://taphome.com/ro/docs/script/value-info/#value-info) a statisticii.

## Value info

Variabilele de intrare ale smart rules Ecuație, Formulă și Script, ale condiției de limitare Formulă și ale textelor notificărilor se pot alege și ca Value info; lista de selecție le afișează ca **Info valoare***numele valorii*, atât pentru o valoare simplă a dispozitivului, cât și pentru o statistică de tip **Perioada curentă**. O astfel de variabilă nu conține un număr, ci informații despre valoare:

| Proprietate | Tip | Conținut |
|---|---|---|
| `Current` | `currentvalueinfo` | Valoarea curentă și cea anterioară, vezi [Valoarea curentă și cea anterioară](https://taphome.com/ro/docs/script/value-info/#current-and-previous-value). Completat pentru o valoare simplă a dispozitivului, `Null` pentru o statistică. |
| `History` | `historyvalues` | Valorile perioadelor încheiate, vezi [Istoricul unei statistici](https://taphome.com/ro/docs/script/value-info/#history-of-a-statistic). Completat pentru o statistică cu istoric, `Null` pentru o valoare simplă a dispozitivului. |

Value info nu conține valoarea însăși. Pentru a lucra împreună cu valoarea și cu informațiile despre ea, adăugați valoarea dispozitivului în script de două ori: o dată ca valoare (de exemplu `Se`) și o dată ca Value info (de exemplu `SeInfo`).

**Disponibilitate** — TapHome Next 2026.1.36599+.

## Valoarea curentă și cea anterioară

`Current` descrie ultima modificare a valorii:

| Proprietate | Tip | Conținut |
|---|---|---|
| `CurrentValueTime` | `datetime` | Când s-a schimbat valoarea la cea curentă. Dacă dispozitivul trimite din nou aceeași valoare, momentul nu se mută. |
| `PreviousValue` | oricare | Valoarea dinaintea ultimei modificări; poate fi `NaN` sau `Null`. |
| `PreviousValueTime` | `datetime` | Când s-a schimbat valoarea la `PreviousValue`. |
| `LastKnownValue` | oricare | Cea mai recentă valoare anterioară care nu a fost nici `NaN`, nici `Null`. |
| `LastKnownValueTime` | `datetime` | Când s-a schimbat valoarea la `LastKnownValue`. |

`Current` este `Null` până când valoarea se schimbă prima dată — verificați-l cu `ISNULL` înainte de a-i citi proprietățile.

**Exemplu — o fereastră deschisă de mai mult de 10 minute**

```taphome
# Wi = contactul ferestrei (1 = deschis), WiInfo = Value info a contactului ferestrei
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;
```

**Exemplu — valoarea crește sau scade**

```taphome
# Se = Temperatură, SeInfo = Value info a dispozitivului Temperatură
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;
```

## Istoricul unei statistici

Pentru o statistică de tip **Perioada curentă**, `History` conține valorile perioadelor deja încheiate:

| Proprietate | Tip | Conținut |
|---|---|---|
| `Values` | colecție | `Values[0]` este ultima perioadă încheiată, `Values[1]` perioada dinaintea ei și așa mai departe. O perioadă fără date este `Null`. Perioada în curs nu este inclusă — ea este valoarea statisticii însăși. |
| `FirstPeriodStartTime` | `datetime` | Începutul perioadei lui `Values[0]`. |

Câte perioade se păstrează depinde de perioada statisticii și de faptul dacă are activată înregistrarea istoricului — comutatorul de istoric al statisticii de pe pagina **Statistici** a dispozitivului:

| Perioadă | Perioade păstrate, înregistrarea istoricului activă | Perioade păstrate, înregistrarea istoricului dezactivată |
|---|---|---|
| 5 minute | 36 (3 ore) | 3 |
| 10 minute | 18 (3 ore) | 3 |
| 15 minute | 12 (3 ore) | 3 |
| 1 oră | 48 (2 zile) | 3 |
| 3 ore | 17 (circa 2 zile) | 3 |
| 1 zi | 35 | 3 |
| 1 lună | 25 | 3 |
| 1 an | 10 | 3 |

Pentru orice altă perioadă (1, 2, 3 și 30 de minute, 12 ore, 2 și 3 zile, 1 săptămână, 1 trimestru) și pentru o statistică de tip **Perioada până acum**, `History` este `Null`. `Values` poate fi mai scurtă decât numărul de perioade păstrate, de exemplu la scurt timp după activarea statisticii — verificați `LENGTH` înainte de a citi un index care poate să nu existe.

**Exemplu — consumul de azi de până acum comparat cu toată ziua de ieri**

```taphome
# En = suma zilnică a dispozitivului Energie (perioada curentă), EnInfo = Value info a aceleiași statistici
VAR yesterday := GETAT(EnInfo.History.Values, 0);
IF ISNULL(yesterday)
    RETURN(NaN);
END
En - yesterday;
```

**Exemplu — consumul zilnic mediu din ultimele 7 zile**

```taphome
# EnInfo = Value info a sumei zilnice a dispozitivului Energie (perioada curentă)
AVG(COPY(EnInfo.History.Values, 0, MIN(7, LENGTH(EnInfo.History.Values))));
```

`COPY` ia primele 7 zile — `MIN` acoperă un istoric mai scurt de 7 zile, pentru că `COPY` dincolo de sfârșitul colecției este o eroare — iar `AVG` sare peste zilele fără date. `MIN`, `MAX` și `AVG` sar peste `Null`, așa că un istoric întreg se poate folosi și direct:

```taphome
# SeInfo = Value info a maximului orar al dispozitivului Temperatură (perioada curentă)
MAX(SeInfo.History.Values);
# Result: the highest temperature of the kept hours
```

**Consultați și** — [Variabile și constante](https://taphome.com/ro/docs/script/variables/), [MIN, MAX și AVG](https://taphome.com/ro/docs/script/mathematical-functions/#min), [COPY](https://taphome.com/ro/docs/script/text-string-and-byte-array/#copy).
