Skripty ve smart rules a oznámeních
Co smart rules Rovnice, Vzorec a Skript, omezující podmínka Vzorec a skripty oznámení předávají skriptu a co dělají s jeho výsledkem: LastState, TriggerName, výstupy, chyby a SLEEP.
Přehled
Smart rules předávají svému skriptu hodnoty zařízení vybraných jako proměnné, pod jejich zkratkami, a výsledek používají různě:
| Kde skript běží | Co udělá výsledek | LastState | TriggerName |
|---|---|---|---|
| Smart rule Rovnice | TRUE spustí akce pro pravdu, FALSE akce pro nepravdu | Předchozí výsledek, na začátku FALSE | Ano |
| Smart rule Vzorec | Zapíše se do každé výstupní proměnné | Předchozí výsledek, na začátku Null | Ano |
| Smart rule Skript | Z přiřazení do proměnných pro čtení / zápis se stanou akce zařízení | Ne | Ano |
| Omezující podmínka Vzorec | TRUE smart rule pustí | Ne | Ne |
| Oznámení — název a zpráva | Text oznámení | Ne | Jen akce Rovnice |
SLEEP je ve všech skriptech smart rules a oznámení odmítnut s hlášením SLEEP function not allowed in this context. Jedinou výjimkou je omezující podmínka Vzorec, která ho přijme; ani tam ho nepoužívejte, protože zdržuje vyhodnocování smart rules. ADDERROR, ADDWARNING a ADDINFO zde skončí chybou ADDERROR function not supported here.; fungují jen ve skriptech zařízení.
Smart rule Rovnice
Smart rule Rovnice vyhodnotí svůj skript pokaždé, když se změní některá z jejích proměnných, po uložení a po startu Core. Výsledek se čte jako logická hodnota, kde nenulové číslo je TRUE. Akce se spustí jen při změně výsledku, takže jednorázové akce a oznámení proběhnou jednou na každou změnu.
- Výsledek
Nullnebo chyba skriptu uvolní zařízení, která pravidlo ovládá; další výsledekTRUEneboFALSEznovu použije své akce. Textový výsledek se hlásí jako chyba vzorce. LastStateje předchozí výsledek skriptu,FALSEpři prvním běhu a po výsledkuNullnebo po chybě.TriggerNameje zkratka proměnné, jejíž změna vyhodnocení vyvolala, po uložení nebo restartu je prázdný. K dispozici od Core 2026.1, sestavení 35936.
Světlo, které se zapne pod 20 lx a zůstane zapnuté až do 60 lx:
(!LastState AND Li < 20) OR (LastState AND Li < 60);
# Result: TRUE below 20, then TRUE until Li reaches 60Stejné nastavení krok za krokem je v článku Konfigurace pomocí LastState.
Smart rule Vzorec
Smart rule Vzorec zapíše výsledek svého skriptu do každé výstupní proměnné. V nastavení Vyhodnocovací režim zvolíte, kdy běží: Když se některá ze vstupních proměnných změnila, nebo Na vlastní událost, kdy ji spouštějí jen spouštěče pravidla a proměnné se pouze čtou.
- Výsledek může být libovolného typu, který výstup přijme. Zapíše se i výsledek
Null. LastStateje předchozí výsledek. Při prvním běhu a po chybě skriptu jeNull, proto ho před použitím v aritmetice ošetřete.TriggerNameje zkratka vstupní proměnné, která se změnila, nebo název spouštěče, který se aktivoval.- Chybějící zařízení se čte jako
Null; takové vstupy kontrolujte funkcíISNULL.
Počítání otevření dveří v režimu vlastní události (spouštěčem je otevření dveřního kontaktu):
IF(ISNULL(LastState), 0, LastState) + 1;
# Result: 1 on the first run, then 2, 3 and so onTermostat s funkcí HYSTERESIS používá stejné ošetření:
HYSTERESIS(Se, 23, 21, 0, 1, IF(ISNULL(LastState), 0, LastState));Smart rule Skript
Smart rule Skript má dva seznamy proměnných, Proměnné jen pro čtení a Proměnné pro čtení / zápis. Přiřazení do proměnné pro čtení / zápis vytvoří akci zařízení; několik přiřazení do jednoho zařízení se sloučí do jedné akce. Editor zobrazuje upozornění Skript musí obsahovat alespoň jedno přiřazení., dokud skript neobsahuje :=.
IF Se > 25
Mu := 1;
ELSE
Mu := 0;
END- Spouští se podle zvolené možnosti: Změní se libovolná proměnná jen pro čtení, nebo Na vlastní událost.
- Zapíší se jen proměnné přiřazené v tomto běhu. Když pravidlo drží své akce, běh, který přiřadí jen některé proměnné pro čtení / zápis, uvolní ostatní, a běh, který nepřiřadí žádnou, uvolní všechny. Řízení pak převezme pravidlo s nižší prioritou nebo výchozí hodnota. Přiřazujte každý výstup v každé větvi, jako v příkladu výše.
- Chyba skriptu uvolní všechny držené výstupy. Hodnota špatného typu pro zařízení zahodí celý běh včetně přiřazení před ní.
TriggerNameje zkratka proměnné jen pro čtení, která se změnila. Zůstane prázdný, když žádná proměnná jen pro čtení není označena jako spouštěč. U vlastních událostí je to název spouštěče, který se aktivoval. Skript do něj může i přiřadit.LastStatezde není.
Omezující podmínka Vzorec
Typ Vzorec u omezující podmínky vyhodnocuje skript nad vlastními proměnnými. TRUE smart rule pustí; FALSE, Null nebo chyba skriptu ji zablokuje.
Te < 22 AND Hu < 70;Skripty oznámení
Název a zpráva oznámení jsou skripty, které musí vrátit text. Mohou číst zařízení vybraná pro oznámení a konstanty oznámení uvedené v části Konstanty kontextu.
"Temperature in " + LocationName + " is " + TOSTRING(Te, "F1") + " °C";