Wir möchten auf unsere Website (wiki), wie auch über die Hackspace-API anzeigen ob der Raum offen oder geschlossen ist. Siehe auch Plenum August 2013.
Um dies realisieren zu können benötigen wir ein Signal welches uns möglichst zuverlässig sagt, wie der Zustand ist.
Es gibt einen Versuchsaufbau mit einem Arduino. An ihm sind zwei Taster und drei LEDs angeschlossen. (Ein-/Austaster und LEDs in den Farben Rot, Gelb, Grün). Er ist wie folgt Programmiert, Es gibt folgende Zustände:
Es leuchtet immer nur eine LED.
Der Standardzustand ist Aus - die Rote-LED leuchtet. Durch Drücken des Eintasters wird in Zustand Ein gewechselt die Grüne-LED leuchtet. Es wird der Zeitpunkt des Wechsels in diesen Zustand gespeichert. Für diesen Zustand gibt es eine Zeitbeschränkung, 1,5h. Wenn diese abläuft wird in den Zustand noch-Ein gewechselt jetzt leuchtet die Gelbe-LED. Vergehen jetzt 0,5h ohne das ein Benutzer einen der Taster drückt, wir in Zustand aus gewechselt.
Es ist jederzeit möglich durch Drücken der Taster den Zustand zu wechseln. Bei einem Wechsel von Ein oder noch-Ein nach Ein wir die Zeitbeschränkung zurückgesetzt.
Die Zeitbeschränkung soll ein Versäumen des Ausschaltens entgegen wirken. Indem nach Ablauf der Zeitbeschränkung automatisch in den Zustand Aus gewechselt wird. Dabei „warnt“ die Gelbe-LED davor und es kann der Eintaster betätigt werden um die Zeitbeschränkung zurück zu setzten.
Mit der Höhe der Zeitbeschränkung wird noch experimentiert.
Eine Kommunikation mit dem angeschlossenen Rechner findet dabei dauerhaft statt (Serial über USB). Im Zustand Ein oder noch-Ein wird „1“ auf die serielle Verbindung sonnst „0“ gesendet.
Der Arduino ist am Router angeschlossen. Dort kann der Zustand mittels HTTP abgerufen werden. Aktuell gibt es einen Proxy um den Traffic auf unserem DSL-Anschluss gering zu halten. Öffentlich kann das hier abgerufen werden: http://status.krautspace.de/status/button/
Quelltext auf GitHub
Welche Werte haben wo was zu sagen? Da soll diese Tabelle helfen.
LED am Gerät | ../status/button | Hackerspace Status API | Bemerkung |
---|---|---|---|
Grün | 1 | true | An |
Gelb | 1 | true | An und das Zeitintervall läuft bald ab |
Rot | 0 | false | Aus |
irgendwas oder aus | Fehler 500 | null | es liegt ein Fehler oder eine Kommunikationsstörung vor → unbekannter Zustand |
Um über der SpaceAPI den Raum Status mitzuteilen gibt es ein Python-Script welches den Status auswertet und das json für die API erzeugt. Das Script gibt es hier. Dies ist auf unserem Webserver installiert und wird minütlich von cron ausgeführt. Die generierte JSON-Datei kann hier abgerufen werden.
Die nächsten Entwicklungsschritte sind:
Dieser Bereich ist noch hier damit nachgelesen werden kann Warum wir das eine oder andere Nicht verwenden wollten. Um zu detektieren ob der Raum offen ist, haben wir mehrere Möglichkeiten diskutiert.
Wir haben eine - Türschließanlage können wir damit nicht schlussfolgern ob die Tür auf oder zu geschlossen ist? Nein, da wir auch (häufig) Physikalische Schlüssel benutzen. Es wäre ein „Verzählen“ möglich da nur geschlussfolgert wird aber nicht der Status des Türtiegels überprüft wird.
Es gibt Detektoren welche feststellen ob der Schließbolzen vom Schloss in der Tür ausgefahren ist, also zugeschlossen. Um so etwas anzubringen müsste in die Tür eingegriffen werden. Dies ist nicht möglich da diese nicht unser Eigentum ist.
Ein Schalter der in der Nähe der Tür montiert wird. Um manuell dass Signal zu geben wurde vom Plenum abgelehnt. Wegen Versäumungsgefahr des Ein-/Ausschaltens.
Idee die Anzeige im Wiki nicht als Statusanzeige zu verstehen sondern als Einladung. Um gezielt einzuladen Schalter an der Tür. Es muss klar ersichtlich sein, dass die Einladung ausgerufen ist, vlt. Lampe. Schalter kann interessant gestaltet werden. Idee Schalter mit Schnur zum dran ziehen, oder als Hand.
Im Raum im Turm hatten wir die vergebenden aktiven DHCP-Leases als für die Ermittlung der Anzahl der Netzwerkgeräte herangezogen. Dies ist jetzt nicht mehr möglich da ein Großteil der Besucher über Freifunk online ist. Es besteht auch das Problem vom verlassenden Raum mit aktiven Netzwerkkomponenten. Auch ist DHCP nur bei IPv4 in Verwendung nicht bei IPv6, welches wir auch anbieten.
Einige Hackspaces verwenden Bewegungsmelder z.B. der CCC Mannheim. Ein Bewegungsmelder verhält sich wie ein Schalter, dessen zustand über die GPIO Schnittelle ausgelesen werden kann. Eine solche Schnittelle haben einige (günstige) Router, der Raspberry PI oder ein Arduino. Der detektierte Zustand könnte über einen HTTP-Server publiziert werden. (Der Status lässt sich aber auch über die Hackspace-API kommunizieren.)
Was wird benötigt:
Was muss geklärt werden:
Es soll einer mit 12V oder so sein. Da wir am Microcontroller keine 230V haben wollen.
Oder vlt. mit Bewegungsmelder der 230V rausgibt ein Relais schalten welches den Durchgang am Controller erzeugt. Benötigt mehr Teile.
Vorschläge: