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 szkript | Mit csinál az eredmény | LastState | TriggerName |
|---|---|---|---|
| Egyenlet smart rule | TRUE esetén az igaz műveletek, FALSE esetén a hamis műveletek futnak le | Az előző eredmény, kezdetben FALSE | Igen |
| Képlet smart rule | Minden kimeneti változóba beíródik | Az előző eredmény, kezdetben Null | Igen |
| Szkript smart rule | Az olvasható és írható változóknak adott értékekből az eszközök műveletei lesznek | Nem | Igen |
| Képlet korlátozó feltétel | TRUE engedi lefutni a smart rule-t | Nem | Nem |
| Értesítés címe és üzenete | Az értesítés szövege | Nem | Csak 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
Nulleredmény vagy a szkript hibája elengedi a szabály által vezérelt eszközöket; a következőTRUEvagyFALSEeredmény ismét alkalmazza a műveleteit. A szöveges eredményt képlethibaként jelzi. - A
LastStatea szkript előző eredménye; az első futáskor, valamintNulleredmény vagy hiba utánFALSE. - A
TriggerNameannak 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 60Ugyanez 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
Nulleredmény is beíródik. - A
LastStateaz előző eredmény. Az első futáskor és szkripthiba utánNull, ezért mielőtt aritmetikában használod, védd le. - A
TriggerNamea 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 azISNULLfü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 onA 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
TriggerNamea 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. LastStatenincs.
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";