Skripte

Ein Skript führt eine Reihe von Eib-Kommandos mit einer defi­nierten Verzö­gerung aus.

Es wird gestartet durch die Anfor­derung /script/my-script-name.

Skripte befinden sich in /usr/local/etc/rleibd. Im Augen­blick ist es möglich, den Pfad durch ../  zu erweitern aber das wird möglicher­weise in Zukunft aus Sicherheits­gründen blockiert.

Wenn Sie Ihre Skripte woanders plaziert haben wollen müssen Sie das bei der Kompi­lierung angeben.

Das Script-Verzeichnis sollte nicht vom Benutzer, unter dem rleibd ausge­führt wird, schreibbar sein (aber natürlich lesbar!)

Ein Script wird als Pthread ausgeführt. Dadurch kann eine praktisch unbe­grenzte Anzahl von Skripten parallel ausgeführt werden und ein ein­zelnes Skript kann beliebig lange laufen. Es besteht jedoch keine Möglich­keit, ein Skript abzu­brechen. Bedenken Sie das bei Skripten mit langer Lauf­zeit. Die einzige Möglich­keit, ein Skript zu beenden, ist rleibd zu beenden.

Ein Skript besteht aus Zeilen des folgenden Aufbaus:

    url delay #comment

Kommentare sind möglich durch das "#"-Zeichen. Jede Zeile, die mit einem "#" beginnt wird eben­falls als Kommentar behandelt. Alles andere wird an den Portserver geschickt.
Der Skriptprozessor fordert die <url> an und wartet für <delay> Millisekunden.

Bei größeren Skripten sollten Sie die Über­tragungs­zeit für jedes Tele­gramm bedenken um einen Sendepuffer-Überlauf oder extreme Bus­last zu vermeiden. Da es normaler­weise nicht nötig ist, Tele­gramme mit Maximal­geschwin­digkeit zu versenden, sollte 200ms eine ange­messene Verzögerung zwischen den Tele­grammen sein. Das erlaubt fünf Schalt­kommandos pro Sekunde.

Die Größe des Sende­puffers ist im Eib-Kernel­driver ange­geben und liegt im Moment bei 20 Nach­richten.

Denken Sie an den besonderen Wert "-1" für Signalisierungszwecke. /eib/grp/x.y.z?val=-1 invertiert den augenblicklichen Wert, d.h. wenn Ihr Licht aus ist wird es eingeschaltet und wenn es an ist wird es ausgeschaltet. Das ist sehr nützlich um z.B. bei bestimmten Ereignissen Lichter blinken zu lassen. (crond, atd!).

Zukünftige Erweiterungen