Skripte

Ein Skript führt ei­ne Rei­he von Eib-Kom­man­dos mit ei­ner de­fi­nier­ten Ver­zö­ge­rung aus.

Es wird ge­star­tet durch die An­for­de­rung /script/my-script-name.

Skrip­te be­fin­den sich in /usr/local/etc/rleibd. Im Au­gen­blick ist es mög­lich, den Pfad durch ../ zu er­wei­tern aber das wird mög­li­cher­wei­se in Zu­kunft aus Si­cher­heits­grün­den blo­ckiert.

Wenn Sie Ih­re Skrip­te wo­an­ders pla­ziert ha­ben wol­len müs­sen Sie das bei der Kom­pi­lie­rung an­ge­ben.

Das Script-Ver­zeich­nis soll­te nicht vom Be­nut­zer, un­ter dem rleibd aus­ge­führt wird, schreib­bar sein (aber na­tür­lich les­bar!)

Ein Script wird als Pthread aus­ge­führt. Da­durch kann ei­ne prak­tisch un­be­grenz­te An­zahl von Skrip­ten par­al­lel aus­ge­führt wer­den und ein ein­zel­nes Skript kann be­lie­big lan­ge lau­fen. Es be­steht je­doch kei­ne Mög­lich­keit, ein Skript ab­zu­bre­chen. Be­den­ken Sie das bei Skrip­ten mit lan­ger Lauf­zeit. Die ein­zi­ge Mög­lich­keit, ein Skript zu be­en­den, ist rleibd zu be­en­den.

Ein Skript be­steht aus Zei­len des fol­gen­den Auf­baus:

url delay #com­ment

Kom­men­ta­re sind mög­lich durch das #-Zei­chen. Jede Zei­le, die mit ei­nem # be­ginnt wird eben­falls als Kom­men­tar be­han­delt. Alles an­de­re wird an den Port­ser­ver ge­schickt.
Der Skript­pro­zes­sor for­dert die <url> an und war­tet für <delay> Mil­li­se­kun­den.

Bei grö­ße­ren Skrip­ten soll­ten Sie die Über­tra­gungs­zeit für je­des Te­le­gramm be­den­ken um ei­nen Sen­de­puf­fer-Über­lauf oder ex­tre­me Bus­last zu ver­mei­den. Da es nor­ma­ler­wei­se nicht nö­tig ist, Te­le­gram­me mit Ma­xi­mal­ge­schwin­dig­keit zu ver­sen­den, soll­te 200 ms ei­ne an­ge­mes­se­ne Ver­zö­ge­rung zwi­schen den Te­le­gram­men sein. Das er­laubt fünf Schalt­kom­man­dos pro Se­kun­de.

Die Grö­ße des Sen­de­puf­fers ist im Eib-Ker­nel­trei­ber an­ge­ge­ben und liegt im Mo­ment bei 20 Nach­rich­ten.

Den­ken Sie an den be­son­de­ren Wert -1 für Si­gna­li­sie­rungs­zwe­cke. /eib/grp/x.y.z?val=-1 in­ver­tiert den au­gen­blick­­li­chen Wert, d.h. wenn Ihr Licht aus ist wird es ein­ge­schal­tet und wenn es an ist wird es aus­ge­schal­tet. Das ist sehr nütz­lich um z.B. bei be­stimm­ten Er­eig­nis­sen Lich­ter blin­ken zu las­sen. (crond, atd!).

Zukünftige Erweiterungen