TapHome

Szkriptek a smart rule-okban és az értesítésekben

Mit ad át a szkriptnek az Egyenlet, a Képlet és a Szkript smart rule, a Képlet korlátozó feltétel és az értesítések szkriptje, és mit kezdenek az eredményével: LastState, TriggerName, kimenetek, hibák és SLEEP.

Áttekintés

A smart rule-ok a változóként kiválasztott eszközök értékeit a rövidítésük alatt adják át a szkriptjüknek, az eredményt pedig különböző módon használják fel:

Hol fut a szkriptMit csinál az eredményLastStateTriggerName
Egyenlet smart ruleTRUE esetén az igaz műveletek, FALSE esetén a hamis műveletek futnak leAz előző eredmény, kezdetben FALSEIgen
Képlet smart ruleMinden kimeneti változóba beíródikAz előző eredmény, kezdetben NullIgen
Szkript smart ruleAz olvasható és írható változóknak adott értékekből az eszközök műveletei lesznekNemIgen
Képlet korlátozó feltételTRUE engedi lefutni a smart rule-tNemNem
Értesítés címe és üzeneteAz értesítés szövegeNemCsak az Egyenlet műveleteinél

A SLEEP függvényt minden smart rule- és értesítésszkript a SLEEP function not allowed in this context. hibával elutasítja. Az egyetlen kivétel a Képlet korlátozó feltétel, amely elfogadja; ott se használd, mert feltartja a smart rule-ok kiértékelését. Az ADDERROR, ADDWARNING és ADDINFO itt az ADDERROR function not supported here. hibával leáll; csak az eszközök szkriptjeiben működik.

Egyenlet smart rule

Az Egyenlet smart rule akkor értékeli ki a szkriptjét, amikor valamelyik változója megváltozik, valamint mentés után és a Core indulása után. Az eredményt logikai értékként olvassa, ahol a nem nulla szám TRUE. A műveletek csak akkor futnak le, ha az eredmény megváltozik, így az egyszeri műveletek és az értesítések változásonként egyszer aktiválódnak.

  • A Null eredmény vagy a szkript hibája elengedi a szabály által vezérelt eszközöket; a következő TRUE vagy FALSE eredmény ismét alkalmazza a műveleteit. A szöveges eredményt képlethibaként jelzi.
  • A LastState a szkript előző eredménye; az első futáskor, valamint Null eredmény vagy hiba után FALSE.
  • A TriggerName annak a változónak a rövidítése, amelynek változása a kiértékelést kiváltotta; mentés vagy újraindítás után üres. A Core 2026.1 verziótól érhető el (build 35936).

Világítás, amely 20 lx alatt bekapcsol, és 60 lx eléréséig bekapcsolva marad:

(!LastState AND Li < 20) OR (LastState AND Li < 60);
# Result: TRUE below 20, then TRUE until Li reaches 60

Ugyanez a konfiguráció lépésről lépésre a Konfiguráció a LastState segítségével szakaszban található.

Képlet smart rule

A Képlet smart rule a szkriptje eredményét minden kimeneti változóba beírja. A Kiértékelési mód beállításban választod ki, mikor fusson: „Amikor bármely bemeneti változó megváltozott”, vagy „Egyéni eseményen”, amikor csak a szabály triggerei indítják el, a változókat pedig csak olvassa.

  • Az eredmény bármilyen típusú lehet, amelyet a kimenet elfogad. A Null eredmény is beíródik.
  • A LastState az előző eredmény. Az első futáskor és szkripthiba után Null, ezért mielőtt aritmetikában használod, védd le.
  • A TriggerName a megváltozott bemeneti változó rövidítése, vagy a kiváltó trigger neve.
  • A hiányzó eszköz értéke Null; az ilyen bemeneteket az ISNULL függvénnyel ellenőrizd.

Ajtónyitások számlálása egyéni esemény módban (a trigger az ajtóérintkező nyitása):

IF(ISNULL(LastState), 0, LastState) + 1;
# Result: 1 on the first run, then 2, 3 and so on

A HYSTERESIS függvénnyel működő termosztát ugyanezt a védelmet használja:

HYSTERESIS(Se, 23, 21, 0, 1, IF(ISNULL(LastState), 0, LastState));

Szkript smart rule

A Szkript smart rule két változólistával rendelkezik: „Csak olvasható változók” és „Olvasható/írható változók”. Az olvasható és írható változónak adott érték az eszköz egy műveletét hozza létre; az ugyanannak az eszköznek adott több érték egyetlen műveletté egyesül. A szerkesztő a „A Szkriptnek legalább egy értékadást kell tartalmaznia.” figyelmeztetést mutatja, amíg a szkript nem tartalmaz := jelet.

IF Se > 25
    Mu := 1;
ELSE
    Mu := 0;
END
  • Lefutási módjai: „A csak olvasható változók bármelyike megváltozik”, vagy „Egyéni eseményen”.
  • Csak az ebben a futásban értéket kapott változók íródnak be. Ha a szabály tartja a műveleteit, az a futás, amely csak néhány olvasható és írható változónak ad értéket, a többit elengedi, az a futás pedig, amely egyiknek sem ad értéket, mindet elengedi. Ekkor egy alacsonyabb prioritású szabály vagy az alapértelmezett érték veszi át az irányítást. Minden ágban adj értéket minden kimenetnek, ahogy a fenti példa mutatja.
  • A szkript hibája minden tartott kimenetet elenged. Ha egy eszköz rossz típusú értéket kap, a teljes futás elvész, a korábbi értékadásokkal együtt.
  • A TriggerName a megváltozott csak olvasható változó rövidítése. Üres marad, ha egyetlen csak olvasható változó sincs triggerként megjelölve. Egyéni eseményeknél a kiváltó trigger neve. A szkript értéket is adhat neki.
  • LastState nincs.

Képlet korlátozó feltétel

A korlátozó feltétel Képlet típusa egy szkriptet értékel ki a saját változói felett. TRUE esetén a smart rule lefuthat; FALSE, Null vagy szkripthiba esetén blokkolja.

Te < 22 AND Hu < 70;

Értesítések szkriptjei

Az értesítés címe és üzenete olyan szkript, amelynek szöveget kell visszaadnia. Olvashatja az értesítéshez kiválasztott eszközöket és az értesítés konstansait, amelyeket A környezet konstansai szakasz sorol fel.

"Temperature in " + LocationName + " is " + TOSTRING(Te, "F1") + " °C";