Štatistiky a Info o hodnote
Štatistiky a Info o hodnote v skriptoch TapHome: hodnota štatistiky, čas poslednej zmeny, predchádzajúca a posledná známa hodnota a hodnoty ukončených období.
Okrem samotnej hodnoty zariadenia môže premenná skriptu obsahovať štatistiku zariadenia alebo informácie o hodnote: kedy sa naposledy zmenila, jej predchádzajúcu hodnotu a hodnoty ukončených období. Obe sa vyberajú vo výbere hodnoty zariadenia v editore skriptu.
Štatistiky
Okrem samotných hodnôt zariadenia ponúka výber hodnoty zariadenia aj jeho štatistiky (sekcia Štatistiky): štatistiky, ktoré na zariadení zapol používateľ alebo ktoré poskytuje samo zariadenie, napríklad minimum, maximum, priemer, počet alebo súčet hodnoty za obdobie. Takto vybraná premenná obsahuje hodnotu tejto štatistiky:
- Štatistika typu Aktuálne obdobie, napríklad priemer aktuálnej hodiny, sa počíta od začiatku prebiehajúceho obdobia — hodiny, dňa alebo mesiaca — až po súčasnosť.
- Štatistika typu Obdobie do teraz, napríklad priemer za posledných 24 hodín, sa počíta v kĺzavom okne zadanej dĺžky, ktoré končí teraz.
# Se was picked as the 1-hour average of Temperature (current period)
IF Se > 25
RETURN(1);
END
0;Hodnoty ukončených období nie sú súčasťou samotnej štatistiky; prečítajte ich z Info o hodnote štatistiky.
Info o hodnote
Vstupné premenné smart rules typu Rovnica, Vzorec a Skript, obmedzujúcej podmienky typu Vzorec a textov notifikácií sa dajú vybrať aj ako Info o hodnote; výber ich ponúka ako Info o hodnote názov hodnoty, a to pre samotnú hodnotu zariadenia aj pre štatistiku typu Aktuálne obdobie. Taká premenná neobsahuje číslo, ale informácie o hodnote:
| Vlastnosť | Typ | Obsah |
|---|---|---|
Current | currentvalueinfo | Aktuálna a predchádzajúca hodnota, pozri Aktuálna a predchádzajúca hodnota. Naplnené pri samotnej hodnote zariadenia, pri štatistike Null. |
History | historyvalues | Hodnoty ukončených období, pozri História štatistiky. Naplnené pri štatistike s históriou, pri samotnej hodnote zariadenia Null. |
Info o hodnote neobsahuje samotnú hodnotu. Ak chcete pracovať s hodnotou aj s informáciami o nej, pridajte hodnotu zariadenia do skriptu dvakrát: raz ako hodnotu (napríklad Se) a raz ako Info o hodnote (napríklad SeInfo).
Dostupnosť — Core 2026.1 v TapHome Next, build 36599 alebo novší (zatiaľ nie v oficiálnom vydaní).
Aktuálna a predchádzajúca hodnota
Current opisuje poslednú zmenu hodnoty:
| Vlastnosť | Typ | Obsah |
|---|---|---|
CurrentValueTime | datetime | Kedy sa hodnota zmenila na aktuálnu. Keď zariadenie pošle tú istú hodnotu znova, čas sa neposunie. |
PreviousValue | ľubovoľný | Hodnota pred poslednou zmenou; môže byť NaN alebo Null. |
PreviousValueTime | datetime | Kedy sa hodnota zmenila na PreviousValue. |
LastKnownValue | ľubovoľný | Posledná predchádzajúca hodnota, ktorá nebola NaN ani Null. |
LastKnownValueTime | datetime | Kedy sa hodnota zmenila na LastKnownValue. |
Current je Null, kým sa hodnota prvý raz nezmení — pred čítaním jeho vlastností ho overte funkciou ISNULL.
Príklad — okno otvorené dlhšie ako 10 minút
# Wi = window contact (1 = open), WiInfo = Value info of the window contact
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;Príklad — stúpa hodnota, alebo klesá
# Se = Temperature, SeInfo = Value info of Temperature
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;História štatistiky
Pri štatistike typu Aktuálne obdobie obsahuje History hodnoty období, ktoré sa už skončili:
| Vlastnosť | Typ | Obsah |
|---|---|---|
Values | kolekcia | Values[0] je posledné ukončené obdobie, Values[1] obdobie pred ním a tak ďalej. Obdobie bez dát je Null. Prebiehajúce obdobie v nej nie je — to je hodnota samotnej štatistiky. |
FirstPeriodStartTime | datetime | Začiatok obdobia Values[0]. |
Koľko období sa uchováva, závisí od obdobia štatistiky a od toho, či má zapnutý záznam histórie — prepínač histórie štatistiky na stránke Štatistiky zariadenia:
| Obdobie | Uchované obdobia, záznam histórie zapnutý | Uchované obdobia, záznam histórie vypnutý |
|---|---|---|
| 5 minút | 36 (3 hodiny) | 3 |
| 10 minút | 18 (3 hodiny) | 3 |
| 15 minút | 12 (3 hodiny) | 3 |
| 1 hodina | 48 (2 dni) | 3 |
| 3 hodiny | 17 (asi 2 dni) | 3 |
| 1 deň | 35 | 3 |
| 1 mesiac | 25 | 3 |
| 1 rok | 10 | 3 |
Pri každom inom období (1, 2, 3 a 30 minút, 12 hodín, 2 a 3 dni, 1 týždeň, 1 štvrťrok) a pri štatistike typu Obdobie do teraz je History Null. Values môže mať menej prvkov, než je počet uchovávaných období, napríklad krátko po zapnutí štatistiky — pred čítaním indexu, ktorý nemusí existovať, overte LENGTH.
Príklad — dnešná spotreba doteraz v porovnaní s celým včerajškom
# En = daily sum of Energy (current period), EnInfo = Value info of the same statistic
VAR yesterday := GETAT(EnInfo.History.Values, 0);
IF ISNULL(yesterday)
RETURN(NaN);
END
En - yesterday;Príklad — priemerná denná spotreba za posledných 7 dní
# EnInfo = Value info of the daily sum of Energy (current period)
AVG(COPY(EnInfo.History.Values, 0, MIN(7, LENGTH(EnInfo.History.Values))));COPY vezme prvých 7 dní — MIN pokryje históriu kratšiu ako 7 dní, pretože COPY za koncom kolekcie je chyba — a AVG preskočí dni bez dát. MIN, MAX a AVG preskakujú Null, takže celú históriu možno použiť aj priamo:
# SeInfo = Value info of the 1-hour maximum of Temperature (current period)
MAX(SeInfo.History.Values);
# Result: the highest temperature of the kept hoursPozrite aj — Premenné a konštanty, MIN, MAX a AVG, COPY.