Status-Bot: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(30 dazwischenliegende Versionen von 18 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==LABOR-Status==
{{ProjektInfoBox
===Legende===
|name=Labor Status-Bot
* [[Bild:StatusON.png]] das LABOR ist geöffnet
|status=stable
|image=StatusON.png
|description=Zeigt den aktuellen Labor Status an
|username=Asklepios
|author=Asklepios
|version=0.5.0
|platform=Labor/python/xmpp
|license=GPL v3+
|download=https://www.das-labor.org/svn/tools/statusbot
|tags=Software,
}}
'''[https://das-labor.org/status Zum Statusbot]'''


* [[Bild:StatusNONE.png]] 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.
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.  


* [[Bild:StatusOFF.png]] das LABOR ist geschlossen
Auch interesannt: die Heatmap des Statusbots, [https://mapall.space/heatmap//show.php?id=Das+Labor hier] finden sich grobe infos darüber wann das Labor in der Vergangenheit immer so offen war.


Die Information '''"LABOR offen/zu"''' wird also durch das Betätigen des Hauptstromschalters am Eingang verändert und schließlich auf der Startseite und unter '''[https://das-labor.org/status /status]''' angezeigt.


===Motivation===
<!--
<big>'''<font color="red">Derzeit ist der Status-Bot defekt. Bitte ruft kurz durch im Labor, um zu überprüfen, ob jemand vor Ort ist!</font>'''</big> [[Kontakt|(Kontakt)]]
-->
==Legende==
* [[Bild:StatusON.png]] das LABOR ist geöffnet


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.
* [[Bild:StatusNONE.png]] 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.


* [[Bild:StatusOFF.png]] das LABOR ist geschlossen


===Services===
==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 (auch als Favicon) und kann und darf auch auf anderen Webseiten verbaut werden.
===HTTP===


Zu diesem Zweck stellt der Bot unter http://www.das-labor.org/status/LAB_STATE.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'''
http://das-labor.org/status/status.php?status


Desweiteren ist der Öffnungsstatus des LABORs auch via [http://de.wikipedia.org/wiki/Jabber 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)
===Spaceapi===
Endpunkt: https://das-labor.org/status/api


===Wie funktionierts?===
Infos: https://spaceapi.io
Der Bot besteht aus Client und Server, die via [http://de.wikipedia.org/wiki/XMPP XMPP] (also über einen Jabberserver) kommunizieren.


==Wie funktionierts?==
DIESE INFORMATIONENSIND NICHT MEHR AKTUELL
TODO: Überarbeitung notwendig


'''Server'''
===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.
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.
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.
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.
 
 
'''Client'''


Der Client läuft im LABOR auf roulette. Er pingt in einem definierten Interval (z.Zt. 60s) den Accesspoint im LABOR. Dieser Accesspoint ist nur dann online, wenn der LABOR-Hauptschalter an ist, was ein relativ zuverlässiges Zeichen für Anwesenheit im LABOR ist. In Abhängigkeit vom Ergebnis des Pings schickt der Client via Jabber eine Nachricht mit dem aktuellen Status an den Server.


===Client===


===Wollmilch-Bot -- a,k.a. Status Bot v2.0===
Der Client läuft im LABOR auf ''weblab (wl)''.
''/etc/init.d/status-setter'' startet ''/usr/local/sbin/endlessloop.sh'' welches in einem definierten Interval (z.Zt. 60s) das Skript ''/usr/local/sbin/mysetter.py''
aufruft. Dieses testet die den Status mit einem Ping an ''blackjack'' und sendet dann ein entsprechendes Kommando an den Server.


Ein V2.0 Bot ist z.Z. in Arbeit -- Quelltext unter https://rl.das-labor.org/bzrtrac/wiki/wollmilch-bot
[[category:Automatisierung]]

Aktuelle Version vom 6. April 2022, 12:32 Uhr

           
Labor Status-Bot

Release status: stable [box doku]

StatusON.png
Description Zeigt den aktuellen Labor Status an
Author(s)  Asklepios
Last Version  0.5.0 ()
Platform  Labor/python/xmpp
License  GPL v3+
Download  https://www.das-labor.org/svn/tools/statusbot



Zum Statusbot

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.

Auch interesannt: die Heatmap des Statusbots, hier finden sich grobe infos darüber wann das Labor in der Vergangenheit immer so offen war.

Die Information "LABOR offen/zu" wird also durch das Betätigen des Hauptstromschalters am Eingang verändert und schließlich auf der Startseite und unter /status angezeigt.

Legende[Bearbeiten | Quelltext bearbeiten]

  • StatusON.png das LABOR ist geöffnet
  • StatusNONE.png 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.
  • StatusOFF.png das LABOR ist geschlossen

Services[Bearbeiten | Quelltext bearbeiten]

HTTP[Bearbeiten | Quelltext bearbeiten]

Zu diesem Zweck stellt der Bot unter http://www.das-labor.org/status/LAB_STATE.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.

http://das-labor.org/status/status.php?status

Spaceapi[Bearbeiten | Quelltext bearbeiten]

Endpunkt: https://das-labor.org/status/api

Infos: https://spaceapi.io

Wie funktionierts?[Bearbeiten | Quelltext bearbeiten]

DIESE INFORMATIONENSIND NICHT MEHR AKTUELL TODO: Überarbeitung notwendig

Server[Bearbeiten | Quelltext bearbeiten]

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.


Client[Bearbeiten | Quelltext bearbeiten]

Der Client läuft im LABOR auf weblab (wl). /etc/init.d/status-setter startet /usr/local/sbin/endlessloop.sh welches in einem definierten Interval (z.Zt. 60s) das Skript /usr/local/sbin/mysetter.py aufruft. Dieses testet die den Status mit einem Ping an blackjack und sendet dann ein entsprechendes Kommando an den Server.