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

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ť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ť — 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ť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 = 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ť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 = 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 hours

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