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:
| Svojstvo | Tip | Sadržaj |
|---|---|---|
Current | currentvalueinfo | Trenutačna i prethodna vrijednost, vidi Trenutačna i prethodna vrijednost. Popunjeno za samu vrijednost uređaja, Null za statistiku. |
History | historyvalues | Vrijednosti 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:
| Svojstvo | Tip | Sadržaj |
|---|---|---|
CurrentValueTime | datetime | Kada se vrijednost promijenila na trenutačnu. Kad uređaj ponovno pošalje istu vrijednost, vrijeme se ne pomiče. |
PreviousValue | bilo koji | Vrijednost prije posljednje promjene; može biti NaN ili Null. |
PreviousValueTime | datetime | Kada se vrijednost promijenila na PreviousValue. |
LastKnownValue | bilo koji | Najnovija prethodna vrijednost koja nije bila ni NaN ni Null. |
LastKnownValueTime | datetime | Kada 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:
| Svojstvo | Tip | Sadržaj |
|---|---|---|
Values | zbirka | Values[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. |
FirstPeriodStartTime | datetime | Poč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:
| Razdoblje | Sačuvana razdoblja, bilježenje povijesti uključeno | Sačuvana razdoblja, bilježenje povijesti isključeno |
|---|---|---|
| 5 minuta | 36 (3 sata) | 3 |
| 10 minuta | 18 (3 sata) | 3 |
| 15 minuta | 12 (3 sata) | 3 |
| 1 sat | 48 (2 dana) | 3 |
| 3 sata | 17 (oko 2 dana) | 3 |
| 1 dan | 35 | 3 |
| 1 mjesec | 25 | 3 |
| 1 godina | 10 | 3 |
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 hoursVidi također — Varijable i konstante, MIN, MAX i AVG, COPY.