---
title: "Statystyki i Info wartości"
description: "Statystyki i Info wartości w skrypcie TapHome: CurrentValueTime, PreviousValue, LastKnownValue, History.Values zakończonych okresów, ile okresów jest przechowywanych, przykłady."
url: "https://taphome.com/pl/docs/script/value-info/"
language: pl
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["scripting-language","variables","statistics","value-info","history"]
  questions: ["Jak użyć statystyki urządzenia w skrypcie TapHome?","Jak uzyskać ostatnią znaną wartość urządzenia, które teraz ma NaN?","Od jak dawna wartość urządzenia się nie zmieniła?","Jak odczytać w skrypcie wczorajszą wartość statystyki?","Ile zakończonych okresów przechowuje statystyka?","Jak zsumować opady z ostatnich 48 godzin z dziennej statystyki opadów?"]
---

# Statystyki i Info wartości

Statystyki i Info wartości w skryptach TapHome: wartość statystyki, czas ostatniej zmiany, poprzednia i ostatnia znana wartość oraz wartości zakończonych okresów.

Ostatnia aktualizacja: 2026-11-06

Oprócz samej wartości urządzenia zmienna skryptu może przechowywać statystykę urządzenia albo informacje o wartości: kiedy ostatnio się zmieniła, jej poprzednią wartość i wartości zakończonych okresów. Jedno i drugie wybiera się na liście wartości urządzenia w edytorze skryptu.

## Statystyki

Oprócz samych wartości urządzenia lista wartości urządzenia oferuje też jego statystyki (sekcja **Statystyki**): statystyki, które użytkownik włączył w urządzeniu albo które udostępnia samo urządzenie, na przykład minimum, maksimum, średnią, liczbę lub sumę wartości w okresie. Zmienna wybrana w ten sposób przechowuje wartość tej statystyki:

- Statystyka typu **Bieżący okres**, na przykład średnia bieżącej godziny, jest liczona od początku trwającego okresu — godziny, dnia lub miesiąca — do teraz.
- Statystyka typu **Okres do teraz**, na przykład średnia z ostatnich 24 godzin, jest liczona w przesuwnym oknie o podanej długości, które kończy się teraz.

```taphome
# Se wybrano jako średnią godzinową urządzenia Temperatura (bieżący okres)
IF Se > 25
    RETURN(1);
END
0;
```

Wartości zakończonych okresów nie są częścią samej statystyki; odczytaj je z [Info wartości](https://taphome.com/pl/docs/script/value-info/#value-info) statystyki.

## Info wartości

Zmienne wejściowe smart rules Równanie, Formuła i Skrypt, warunku ograniczającego Formuła oraz tekstów powiadomień można wybrać także jako Info wartości; lista wyboru pokazuje je jako **Info wartości***nazwa wartości*, zarówno dla samej wartości urządzenia, jak i dla statystyki typu **Bieżący okres**. Taka zmienna nie przechowuje liczby, lecz informacje o wartości:

| Właściwość | Typ | Zawartość |
|---|---|---|
| `Current` | `currentvalueinfo` | Bieżąca i poprzednia wartość, zobacz [Bieżąca i poprzednia wartość](https://taphome.com/pl/docs/script/value-info/#current-and-previous-value). Wypełnione dla samej wartości urządzenia, `Null` dla statystyki. |
| `History` | `historyvalues` | Wartości zakończonych okresów, zobacz [Historia statystyki](https://taphome.com/pl/docs/script/value-info/#history-of-a-statistic). Wypełnione dla statystyki z historią, `Null` dla samej wartości urządzenia. |

Info wartości nie zawiera samej wartości. Aby pracować z wartością i informacjami o niej jednocześnie, dodaj wartość urządzenia do skryptu dwa razy: raz jako wartość (na przykład `Se`) i raz jako Info wartości (na przykład `SeInfo`).

**Dostępność** — TapHome Next 2026.1.36599+.

## Bieżąca i poprzednia wartość

`Current` opisuje ostatnią zmianę wartości:

| Właściwość | Typ | Zawartość |
|---|---|---|
| `CurrentValueTime` | `datetime` | Kiedy wartość zmieniła się na bieżącą. Gdy urządzenie ponownie wyśle tę samą wartość, czas się nie przesuwa. |
| `PreviousValue` | dowolny | Wartość przed ostatnią zmianą; może być `NaN` lub `Null`. |
| `PreviousValueTime` | `datetime` | Kiedy wartość zmieniła się na `PreviousValue`. |
| `LastKnownValue` | dowolny | Najnowsza poprzednia wartość, która nie była ani `NaN`, ani `Null`. |
| `LastKnownValueTime` | `datetime` | Kiedy wartość zmieniła się na `LastKnownValue`. |

`Current` jest `Null`, dopóki wartość nie zmieni się po raz pierwszy — przed odczytem jego właściwości sprawdź go funkcją `ISNULL`.

**Przykład — okno otwarte dłużej niż 10 minut**

```taphome
# Wi = kontaktron okna (1 = otwarte), WiInfo = Info wartości kontaktronu okna
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;
```

**Przykład — czy wartość rośnie, czy spada**

```taphome
# Se = Temperatura, SeInfo = Info wartości urządzenia 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;
```

## Historia statystyki

Dla statystyki typu **Bieżący okres** `History` przechowuje wartości okresów, które już się zakończyły:

| Właściwość | Typ | Zawartość |
|---|---|---|
| `Values` | kolekcja | `Values[0]` to ostatni zakończony okres, `Values[1]` okres przed nim i tak dalej. Okres bez danych to `Null`. Trwający okres nie jest uwzględniony — to wartość samej statystyki. |
| `FirstPeriodStartTime` | `datetime` | Początek okresu `Values[0]`. |

Liczba przechowywanych okresów zależy od okresu statystyki i od tego, czy ma ona włączony zapis historii — przełącznik historii statystyki na stronie **Statystyki** urządzenia:

| Okres | Przechowywane okresy, zapis historii włączony | Przechowywane okresy, zapis historii wyłączony |
|---|---|---|
| 5 minut | 36 (3 godziny) | 3 |
| 10 minut | 18 (3 godziny) | 3 |
| 15 minut | 12 (3 godziny) | 3 |
| 1 godzina | 48 (2 dni) | 3 |
| 3 godziny | 17 (około 2 dni) | 3 |
| 1 dzień | 35 | 3 |
| 1 miesiąc | 25 | 3 |
| 1 rok | 10 | 3 |

Dla każdego innego okresu (1, 2, 3 i 30 minut, 12 godzin, 2 i 3 dni, 1 tydzień, 1 kwartał) oraz dla statystyki typu **Okres do teraz** `History` jest `Null`. `Values` może być krótsza niż liczba przechowywanych okresów, na przykład tuż po włączeniu statystyki — przed odczytem indeksu, który może nie istnieć, sprawdź `LENGTH`.

**Przykład — dzisiejsze dotychczasowe zużycie w porównaniu z całym wczorajszym dniem**

```taphome
# En = suma dzienna urządzenia Energia (bieżący okres), EnInfo = Info wartości tej samej statystyki
VAR yesterday := GETAT(EnInfo.History.Values, 0);
IF ISNULL(yesterday)
    RETURN(NaN);
END
En - yesterday;
```

**Przykład — średnie dzienne zużycie z ostatnich 7 dni**

```taphome
# EnInfo = Info wartości sumy dziennej urządzenia Energia (bieżący okres)
AVG(COPY(EnInfo.History.Values, 0, MIN(7, LENGTH(EnInfo.History.Values))));
```

`COPY` bierze pierwsze 7 dni — `MIN` obejmuje historię krótszą niż 7 dni, bo `COPY` poza koniec kolekcji jest błędem — a `AVG` pomija dni bez danych. `MIN`, `MAX` i `AVG` pomijają `Null`, więc całą historię można też użyć bezpośrednio:

```taphome
# SeInfo = Info wartości maksimum godzinowego urządzenia Temperatura (bieżący okres)
MAX(SeInfo.History.Values);
# Result: the highest temperature of the kept hours
```

**Zobacz też** — [Zmienne i stałe](https://taphome.com/pl/docs/script/variables/), [MIN, MAX i AVG](https://taphome.com/pl/docs/script/mathematical-functions/#min), [COPY](https://taphome.com/pl/docs/script/text-string-and-byte-array/#copy).
