TapHome

Š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í.

Posledná aktualizácia:

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 je vybraná ako hodinový priemer zariadenia Teplota (aktuálne obdobie)
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ťTypObsah
CurrentcurrentvalueinfoAktuálna a predchádzajúca hodnota, pozri Aktuálna a predchádzajúca hodnota. Naplnené pri samotnej hodnote zariadenia, pri štatistike Null.
HistoryhistoryvaluesHodnoty 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ť — TapHome Next 2026.1.36599+.

Aktuálna a predchádzajúca hodnota

Current opisuje poslednú zmenu hodnoty:

VlastnosťTypObsah
CurrentValueTimedatetimeKedy 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.
PreviousValueTimedatetimeKedy sa hodnota zmenila na PreviousValue.
LastKnownValueľubovoľnýPosledná predchádzajúca hodnota, ktorá nebola NaN ani Null.
LastKnownValueTimedatetimeKedy 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 = okenný kontakt (1 = otvorené), WiInfo = Info o hodnote 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;

Príklad — stúpa hodnota, alebo klesá

# Se = Teplota, SeInfo = Info o hodnote zariadenia 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;

História štatistiky

Pri štatistike typu Aktuálne obdobie obsahuje History hodnoty období, ktoré sa už skončili:

VlastnosťTypObsah
ValueskolekciaValues[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.
FirstPeriodStartTimedatetimeZač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:

ObdobieUchované obdobia, záznam histórie zapnutýUchované obdobia, záznam histórie vypnutý
5 minút36 (3 hodiny)3
10 minút18 (3 hodiny)3
15 minút12 (3 hodiny)3
1 hodina48 (2 dni)3
3 hodiny17 (asi 2 dni)3
1 deň353
1 mesiac253
1 rok103

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 = denný súčet zariadenia Energia (aktuálne obdobie), EnInfo = Info o hodnote tej istej štatistiky
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 = Info o hodnote denného súčtu zariadenia Energia (aktuálne obdobie)
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 = Info o hodnote hodinového maxima zariadenia Teplota (aktuálne obdobie)
MAX(SeInfo.History.Values);
# Result: the highest temperature of the kept hours

Pozrite aj — Premenné a konštanty, MIN, MAX a AVG, COPY.