TapHome

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ýsledekLastStateTriggerName
Smart rule RovniceTRUE spustí akce pro pravdu, FALSE akce pro nepravduPředchozí výsledek, na začátku FALSEAno
Smart rule VzorecZapíše se do každé výstupní proměnnéPředchozí výsledek, na začátku NullAno
Smart rule SkriptZ přiřazení do proměnných pro čtení / zápis se stanou akce zařízeníNeAno
Omezující podmínka VzorecTRUE smart rule pustíNeNe
Oznámení — název a zprávaText oznámeníNeJen 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 Null nebo chyba skriptu uvolní zařízení, která pravidlo ovládá; další výsledek TRUE nebo FALSE znovu použije své akce. Textový výsledek se hlásí jako chyba vzorce.
  • LastState je předchozí výsledek skriptu, FALSE při prvním běhu a po výsledku Null nebo po chybě.
  • TriggerName je 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 60

Stejné 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.
  • LastState je předchozí výsledek. Při prvním běhu a po chybě skriptu je Null, proto ho před použitím v aritmetice ošetřete.
  • TriggerName je 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 on

Termostat 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í.
  • TriggerName je 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.
  • LastState zde 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";