TapHome

Statistika i Info vrijednosti

Statistika i Info vrijednosti u skriptama TapHome: vrijednost statistike, vrijeme posljednje promjene, prethodna i posljednja poznata vrijednost te vrijednosti završenih razdoblja.

Osim same vrijednosti uređaja, varijabla skripte može sadržavati statistiku uređaja ili informacije o vrijednosti: kada se posljednji put promijenila, njezinu prethodnu vrijednost i vrijednosti završenih razdoblja. Oboje se odabire u izborniku vrijednosti uređaja u uređivaču skripte.

Statistika

Osim samih vrijednosti uređaja, izbornik vrijednosti uređaja nudi i statistike uređaja (odjeljak Statistika): statistike koje je korisnik uključio na uređaju ili koje daje sam uređaj, na primjer minimum, maksimum, prosjek, broj ili zbroj vrijednosti u razdoblju. Tako odabrana varijabla sadrži vrijednost te statistike:

  • Statistika tipa Tekuće razdoblje, na primjer prosjek tekućeg sata, računa se od početka razdoblja koje traje — sata, dana ili mjeseca — do sada.
  • Statistika tipa Razdoblje do sada, na primjer prosjek posljednja 24 sata, računa se u kliznom prozoru zadane duljine koji završava sada.
# Se was picked as the 1-hour average of Temperature (current period)
IF Se > 25
    RETURN(1);
END
0;

Vrijednosti završenih razdoblja nisu dio same statistike; pročitajte ih iz Info vrijednosti statistike.

Info vrijednosti

Ulazne varijable u smart rules Jednadžba, Formula i Skripta, u ograničavajućem uvjetu Formula i u tekstovima obavijesti mogu se odabrati i kao Info vrijednosti; izbornik ih navodi kao Info vrijednosti naziv vrijednosti, i za samu vrijednost uređaja i za statistiku tipa Tekuće razdoblje. Takva varijabla ne sadrži broj, nego informacije o vrijednosti:

SvojstvoTipSadržaj
CurrentcurrentvalueinfoTrenutačna i prethodna vrijednost, vidi Trenutačna i prethodna vrijednost. Popunjeno za samu vrijednost uređaja, Null za statistiku.
HistoryhistoryvaluesVrijednosti završenih razdoblja, vidi Povijest statistike. Popunjeno za statistiku s poviješću, Null za samu vrijednost uređaja.

Info vrijednosti ne sadrži samu vrijednost. Da biste radili s vrijednošću i informacijama o njoj zajedno, dodajte vrijednost uređaja u skriptu dvaput: jednom kao vrijednost (na primjer Se) i jednom kao Info vrijednosti (na primjer SeInfo).

Dostupno — Core 2026.1 u TapHome Next, build 36599 ili noviji (još nije u službenom izdanju).

Trenutačna i prethodna vrijednost

Current opisuje posljednju promjenu vrijednosti:

SvojstvoTipSadržaj
CurrentValueTimedatetimeKada se vrijednost promijenila na trenutačnu. Kad uređaj ponovno pošalje istu vrijednost, vrijeme se ne pomiče.
PreviousValuebilo kojiVrijednost prije posljednje promjene; može biti NaN ili Null.
PreviousValueTimedatetimeKada se vrijednost promijenila na PreviousValue.
LastKnownValuebilo kojiNajnovija prethodna vrijednost koja nije bila ni NaN ni Null.
LastKnownValueTimedatetimeKada se vrijednost promijenila na LastKnownValue.

Current je Null dok se vrijednost prvi put ne promijeni — prije čitanja njegovih svojstava provjerite ga funkcijom ISNULL.

Primjer — prozor otvoren dulje od 10 minuta

# 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;

Primjer — raste li vrijednost ili pada

# 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;

Povijest statistike

Za statistiku tipa Tekuće razdoblje History sadrži vrijednosti razdoblja koja su već završila:

SvojstvoTipSadržaj
ValueszbirkaValues[0] je posljednje završeno razdoblje, Values[1] razdoblje prije njega i tako dalje. Razdoblje bez podataka je Null. Razdoblje koje traje nije uključeno — ono je vrijednost same statistike.
FirstPeriodStartTimedatetimePočetak razdoblja Values[0].

Koliko se razdoblja čuva, ovisi o razdoblju statistike i o tome je li za nju uključeno bilježenje povijesti — prekidač povijesti statistike na stranici Statistika uređaja:

RazdobljeSačuvana razdoblja, bilježenje povijesti uključenoSačuvana razdoblja, bilježenje povijesti isključeno
5 minuta36 (3 sata)3
10 minuta18 (3 sata)3
15 minuta12 (3 sata)3
1 sat48 (2 dana)3
3 sata17 (oko 2 dana)3
1 dan353
1 mjesec253
1 godina103

Za svako drugo razdoblje (1, 2, 3 i 30 minuta, 12 sati, 2 i 3 dana, 1 tjedan, 1 tromjesečje) i za statistiku tipa Razdoblje do sada History je Null. Values može biti kraća od broja sačuvanih razdoblja, na primjer ubrzo nakon uključivanja statistike — prije čitanja indeksa koji možda ne postoji provjerite LENGTH.

Primjer — današnja potrošnja do sada u usporedbi s cijelim jučerašnjim danom

# 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;

Primjer — prosječna dnevna potrošnja posljednjih 7 dana

# EnInfo = Value info of the daily sum of Energy (current period)
AVG(COPY(EnInfo.History.Values, 0, MIN(7, LENGTH(EnInfo.History.Values))));

COPY uzima prvih 7 dana — MIN pokriva povijest kraću od 7 dana, jer je COPY preko kraja zbirke pogreška — a AVG preskače dane bez podataka. MIN, MAX i AVG preskaču Null, pa se cijela povijest može koristiti i izravno:

# SeInfo = Value info of the 1-hour maximum of Temperature (current period)
MAX(SeInfo.History.Values);
# Result: the highest temperature of the kept hours

Vidi također — Varijable i konstante, MIN, MAX i AVG, COPY.