Status-Bot: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 51: | Zeile 51: | ||
'''Client''' | '''Client''' | ||
Der Client läuft im LABOR auf roulette. Er ruft in einem definierten Interval (z.Zt. | Der Client läuft im LABOR auf roulette. Er ruft in einem definierten Interval (z.Zt. 180s) das script | ||
/etc/statusclient/status.sh | /etc/statusclient/status.sh | ||
auf. In Abhaengigkeit des Ruegabewertes (0 = labor offen | 1 = labor zu) wird der Status ueber den client gesetzt. Der Client ist ein permanent online erreichbarer Jabberclient (statsetter at das-labor (subdomaindelimiter here)/status). Dieses Script ist im moment so aufgebaut, dass versucht wird unseren Druckerserver Blackjack zu pingen. Dabei wird Blackjack eigentlich nur mit dem Hauptschlater ein und aus geschaltet - kommt einer auf die Idee blackjack auszuschalten, oder vom labornetz zu trennen wird also der Status des Labors auf "geschlossen" gesetzt. | auf. In Abhaengigkeit des Ruegabewertes (0 = labor offen | 1 = labor zu) wird der Status ueber den client gesetzt. Der Client ist ein permanent online erreichbarer Jabberclient (statsetter at das-labor (subdomaindelimiter here)/status). Dieses Script ist im moment so aufgebaut, dass versucht wird unseren Druckerserver Blackjack zu pingen. Dabei wird Blackjack eigentlich nur mit dem Hauptschlater ein und aus geschaltet - kommt einer auf die Idee blackjack auszuschalten, oder vom labornetz zu trennen wird also der Status des Labors auf "geschlossen" gesetzt. | ||
[[category:Automatisierung]] | [[category:Automatisierung]] |
Version vom 23. Februar 2010, 20:03 Uhr
Labor Status-Bot Release status: stable [box doku] | |
---|---|
Description | Zeigt den aktuellen Labor Status an |
Author(s) | Til |
Platform | Labor/ruby/xmpp4r |
LABOR-Status
Legende
- Der Statusbot erhält gerade keine Daten und weiss nicht, ob das LABOR geöffnet oder geschlossen ist. Ruf am besten an und finde es selbst heraus.
Motivation
Es ist unbequem, immer im LABOR anrufen zu müssen, um herauszufinden, ob gerade jemand da ist, ob man 'reinkommt oder ob man, wenn man denn mal drin wäre, alleine verpeilen müsste. Die Information "LABOR offen | LABOR zu" sollte also irgendwie anderes transportiert werden.
Services
HTTP
Zu diesem Zweck stellt der Bot unter http://www.das-labor.org/status.png den aktuellen Status dar. Dieses Icon ist auch auf www.das-labor.org zu sehen und kann und darf auch auf anderen Webseiten verlinkt werden.
XMPP
Desweiteren ist der Öffnungsstatus des LABORs auch via Jabber zu erfahren. Dazu fügt man "status bei das-labor pünkt org" der eigenen Kontaktliste hinzu. Der Bot zeigt hier durch seinen Status an, wie der des LABORs gerade ist (free for chat = offen, Extended Away/Not Available = geschlossen, DND = habe keine Daten)
Wie funktionierts?
Der Bot besteht aus Client und Server, die via XMPP (also über einen Jabberserver) kommunizieren.
Server
Auf dem Server, der auch die Webseiten des LABORs vorhält, läuft auch der Server des Statusbots. Er lauscht unter der Adresse status ät das minus labor pünkt org auf Statusinformationen seitens des Clients und schreibt abhängig davon ein farblich passendes Statusicon in das document-root der Domain www.das-labor.org. Dabei setzt er gleichzeitig entsprechend seinen im Jabber sichtbaren Status. Er validiert, dass die Statusmeldungen des Clients von dem dazu berechtigten Account kommen, was dank des Designs des Extensible Messaging and Presence Protocol auch zumindest nicht trivial zu umgehen ist. Wenn der Server für eine definierte Zeit keine Statusinformationen mehr vom Client empfangen hat, setzt er den Status auf NONE, das Icon wird gelb, der Jabberstatus DND.
Client
Der Client läuft im LABOR auf roulette. Er ruft in einem definierten Interval (z.Zt. 180s) das script
/etc/statusclient/status.sh
auf. In Abhaengigkeit des Ruegabewertes (0 = labor offen | 1 = labor zu) wird der Status ueber den client gesetzt. Der Client ist ein permanent online erreichbarer Jabberclient (statsetter at das-labor (subdomaindelimiter here)/status). Dieses Script ist im moment so aufgebaut, dass versucht wird unseren Druckerserver Blackjack zu pingen. Dabei wird Blackjack eigentlich nur mit dem Hauptschlater ein und aus geschaltet - kommt einer auf die Idee blackjack auszuschalten, oder vom labornetz zu trennen wird also der Status des Labors auf "geschlossen" gesetzt.