Raumstatus

Wechseln zu: Navigation, Suche
Raumstatus
Kufa7.jpg
Automatische Überprüfung, ob der Raum offen oder geschlossen ist
Status Läuft
OrganisatorIn Basti
InteressentInnen

Der Raumstatus bestimmt automatisch, ob der Raum als offen oder geschlossen angezeigt wird. Dieser Indikator soll dazu beitragen, dass niemand vor verschlossener Tür steht.

Aktueller Raumstatus

Der Space ist seit gestern um 23:20 Uhr geöffnet.

Aufgezeichneter Raumstatus

Hier kann unser Raumstatus der letzten Zeit abgelesen werden. Da die Besucheranzahl über die Anzahl aktiver Geräte ermittelt wird, kann diese lediglich einen Anhaltspunkt darstellen. Für eine maschinenlesbare Version, siehe REST-API.

Status per day Status per week
Status per month Status per year
Graphen werden automatisch mit Munin generiert.
Manuell gepflegte Besucherzahlen 2012 Manuell gepflegte Besucherzahlen 2013
Status updated manually
Graphen wurden mit gnuplot erstellt.

Dokumentation

Bestimmung des Status

Da die Projektwerkstatt von einer Reihe von Gruppen genutzt wird, musste eine Methode her, die zwischen verschiedenen Personengruppen unterscheiden kann. Meist schalten wir unsere mobilen Geräte relativ schnell nach Eintreffen ein und versorgen sie per Kabel oder WLAN mit Internet. Deshalb lag es nahe, die Geräte an ihren Mac-Adressen zu identifizieren. Wenn also eine als ausreichend definierte Zahl an Geräten von Hickern am OpenWRT-Router hängen, wird der Raumstatus-Indikator auf "offen" gestellt.

Software auf Routerseite

Quelltext: Raumstatus/room.sh

Das Shellscript auf dem Router geht die dhcp.leases-Datei zeilenweise durch und gleicht diese mit einer Liste bekannter MAC-Adressen ab. Wenn es sich bei der MAC-Adresse um eine bekannte Adresse handelt und sie per ping erreichbar ist, wird der Personenzähler inkrementiert. Zuletzt wird die Anzahl der anwesenden Personen an die API gesendet (siehe nächsten Abschnitt), solange mindestens eine Person anwesend ist. Der API-Schlüssel, der sowohl Router als auch Server bekannt ist, ist eine Art Shared secret.

OpenWRT und SSL

In OpenWRT sind standardmäßig keinerlei Certificate Authority (CA) public keys (CA certs) eingebunden. Um mit curl dennoch eine anständige Verifikation des Zertifikats hinzubekommen, lädt man sich von seiner CA das Root-Zertifikat herunter (genauer: Class 1 PKI Key und Class 3 PKI Key; bei CAcert.org z.B. hier). Die Zertifikate legt man (inkl. BEGIN/END CERTIFICATE) in einer Datei ab, die man curl mit dem Parameter --cacert übergibt:

<highlightsyntax lang="bash">curl --cacert class1_class3.crt -d "apikey=$apikey&people=$peopleCount" https://hickerspace.org/api/room/</highlightsyntax>

Software auf Serverseite

Quelltext: Raumstatus/room.php

Auf Serverseite wird per POST-Anfrage und passendem API-Schlüssel die Anzahl an anwesenden Personen entgegengenommen. Gespeichert wird außerdem die aktuelle Uhrzeit und die Uhrzeit des letzten Öffnen des Raums (als Unix Timestamp). Ob die Anfrage erfolgreich war, ist in der JSON-Antwort des Servers zu sehen. Die Variable success ist enstprechend gesetzt. Bei Fehlern gibt reason die Fehlerursache an.

Wird an den Server eine GET-Anfrage gestellt, antwortet der Server mit Raumstatus und Zeitpunkt des letzten Öffnens/Schließens. Details dazu finden sich unter Rest-API.

Nutzung

Wer nutzt den Raumstatus?

Einschränkungen

  • werden die mobilen Geräte erst später eingeschaltet, schaltet der Indikator erst dann um
  • keine Vorhersage, durch das (nutzungsbedingte) Umschalten gegen 19:30 Uhr bietet die Funktion nur eine eingeschränkte Planungsmöglichkeit
  • ohne Internet im Space bleibt der Indikator auf "geschlossen"