---
title: "Statistiky a Info o hodnotě"
description: "Statistiky a Info o hodnotě ve skriptu TapHome: CurrentValueTime, PreviousValue, LastKnownValue, History.Values ukončených období, kolik období se uchovává, příklady."
url: "https://taphome.com/cs/docs/script/value-info/"
language: cs
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["scripting-language","variables","statistics","value-info","history"]
  questions: ["Jak ve skriptu TapHome použiji statistiku zařízení?","Jak získat poslední známou hodnotu zařízení, které je teď NaN?","Jak dlouho se hodnota zařízení nezměnila?","Jak ve skriptu přečtu včerejší hodnotu statistiky?","Kolik ukončených období statistika uchovává?","Jak sečtu srážky za posledních 48 hodin z denní statistiky srážek?"]
---

# Statistiky a Info o hodnotě

Statistiky a Info o hodnotě ve skriptech TapHome: hodnota statistiky, čas poslední změny, předchozí a poslední známá hodnota a hodnoty ukončených období.

Poslední aktualizace: 2026-11-06

Kromě samotné hodnoty zařízení může proměnná skriptu obsahovat statistiku zařízení nebo informace o hodnotě: kdy se naposledy změnila, její předchozí hodnotu a hodnoty ukončených období. Obojí se vybírá ve výběru hodnoty zařízení v editoru skriptu.

## Statistiky

Kromě samotných hodnot zařízení nabízí výběr hodnoty zařízení i jeho statistiky (sekce **Statistiky**): statistiky, které na zařízení zapnul uživatel nebo které poskytuje samo zařízení, například minimum, maximum, průměr, počet nebo součet hodnoty za období. Takto vybraná proměnná obsahuje hodnotu této statistiky:

- Statistika typu **Aktuální období**, například průměr aktuální hodiny, se počítá od začátku probíhajícího období — hodiny, dne nebo měsíce — až do současnosti.
- Statistika typu **Období do současnosti**, například průměr za posledních 24 hodin, se počítá v klouzavém okně zadané délky, které končí teď.

```taphome
# Se byla vybrána jako hodinový průměr zařízení Teplota (aktuální období)
IF Se > 25
    RETURN(1);
END
0;
```

Hodnoty ukončených období nejsou součástí samotné statistiky; přečtěte je z [Info o hodnotě](https://taphome.com/cs/docs/script/value-info/#value-info) statistiky.

## Info o hodnotě

Vstupní proměnné smart rules Rovnice, Vzorec a Skript, omezující podmínky Vzorec a textů oznámení lze vybrat také jako Info o hodnotě; výběr je uvádí jako **Info o hodnotě***název hodnoty*, a to pro samotnou hodnotu zařízení i pro statistiku typu **Aktuální období**. Taková proměnná neobsahuje číslo, ale informace o hodnotě:

| Vlastnost | Typ | Obsah |
|---|---|---|
| `Current` | `currentvalueinfo` | Aktuální a předchozí hodnota, viz [Aktuální a předchozí hodnota](https://taphome.com/cs/docs/script/value-info/#current-and-previous-value). Vyplněno u samotné hodnoty zařízení, u statistiky `Null`. |
| `History` | `historyvalues` | Hodnoty ukončených období, viz [Historie statistiky](https://taphome.com/cs/docs/script/value-info/#history-of-a-statistic). Vyplněno u statistiky s historií, u samotné hodnoty zařízení `Null`. |

Info o hodnotě neobsahuje samotnou hodnotu. Chcete-li pracovat s hodnotou i s informacemi o ní, přidejte hodnotu zařízení do skriptu dvakrát: jednou jako hodnotu (například `Se`) a jednou jako Info o hodnotě (například `SeInfo`).

**Dostupnost** — TapHome Next 2026.1.36599+.

## Aktuální a předchozí hodnota

`Current` popisuje poslední změnu hodnoty:

| Vlastnost | Typ | Obsah |
|---|---|---|
| `CurrentValueTime` | `datetime` | Kdy se hodnota změnila na aktuální. Když zařízení pošle stejnou hodnotu znovu, čas se neposune. |
| `PreviousValue` | libovolný | Hodnota před poslední změnou; může být `NaN` nebo `Null`. |
| `PreviousValueTime` | `datetime` | Kdy se hodnota změnila na `PreviousValue`. |
| `LastKnownValue` | libovolný | Nejnovější předchozí hodnota, která nebyla `NaN` ani `Null`. |
| `LastKnownValueTime` | `datetime` | Kdy se hodnota změnila na `LastKnownValue`. |

`Current` je `Null`, dokud se hodnota poprvé nezmění — před čtením jeho vlastností ho ověřte funkcí `ISNULL`.

**Příklad — okno otevřené déle než 10 minut**

```taphome
# Wi = okenní kontakt (1 = otevřeno), WiInfo = Info o hodnotě okenního kontaktu
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;
```

**Příklad — stoupá hodnota, nebo klesá**

```taphome
# Se = Teplota, SeInfo = Info o hodnotě zařízení Teplota
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;
```

## Historie statistiky

U statistiky typu **Aktuální období** obsahuje `History` hodnoty období, která už skončila:

| Vlastnost | Typ | Obsah |
|---|---|---|
| `Values` | kolekce | `Values[0]` je poslední ukončené období, `Values[1]` období před ním a tak dále. Období bez dat je `Null`. Probíhající období v ní není — to je hodnota samotné statistiky. |
| `FirstPeriodStartTime` | `datetime` | Začátek období `Values[0]`. |

Kolik období se uchovává, závisí na období statistiky a na tom, zda má zapnutý záznam historie — přepínač historie statistiky na stránce **Statistiky** zařízení:

| Období | Uchovaná období, záznam historie zapnutý | Uchovaná období, záznam historie vypnutý |
|---|---|---|
| 5 minut | 36 (3 hodiny) | 3 |
| 10 minut | 18 (3 hodiny) | 3 |
| 15 minut | 12 (3 hodiny) | 3 |
| 1 hodina | 48 (2 dny) | 3 |
| 3 hodiny | 17 (asi 2 dny) | 3 |
| 1 den | 35 | 3 |
| 1 měsíc | 25 | 3 |
| 1 rok | 10 | 3 |

U každého jiného období (1, 2, 3 a 30 minut, 12 hodin, 2 a 3 dny, 1 týden, 1 čtvrtletí) a u statistiky typu **Období do současnosti** je `History` `Null`. `Values` může mít méně prvků, než je počet uchovávaných období, například krátce po zapnutí statistiky — před čtením indexu, který nemusí existovat, ověřte `LENGTH`.

**Příklad — dnešní spotřeba dosud ve srovnání s celým včerejškem**

```taphome
# En = denní součet zařízení Energie (aktuální období), EnInfo = Info o hodnotě téže statistiky
VAR yesterday := GETAT(EnInfo.History.Values, 0);
IF ISNULL(yesterday)
    RETURN(NaN);
END
En - yesterday;
```

**Příklad — průměrná denní spotřeba za posledních 7 dní**

```taphome
# EnInfo = Info o hodnotě denního součtu zařízení Energie (aktuální období)
AVG(COPY(EnInfo.History.Values, 0, MIN(7, LENGTH(EnInfo.History.Values))));
```

`COPY` vezme prvních 7 dní — `MIN` pokryje historii kratší než 7 dní, protože `COPY` za koncem kolekce je chyba — a `AVG` přeskočí dny bez dat. `MIN`, `MAX` a `AVG` přeskakují `Null`, takže celou historii lze použít i přímo:

```taphome
# SeInfo = Info o hodnotě hodinového maxima zařízení Teplota (aktuální období)
MAX(SeInfo.History.Values);
# Result: the highest temperature of the kept hours
```

**Viz také** — [Proměnné a konstanty](https://taphome.com/cs/docs/script/variables/), [MIN, MAX a AVG](https://taphome.com/cs/docs/script/mathematical-functions/#min), [COPY](https://taphome.com/cs/docs/script/text-string-and-byte-array/#copy).
