Pinpad v1
Pinpad Release status: stable [box doku] | |
---|---|
Beschreibung | Zugang zum RZL |
Autor(en) | sECuRE, AlexanderB |
Status
Das Pinpad ist seit dem 23.11.2010 in Benutzung. Zum Öffnen der Tür hat jedes Mitglied eine persönliche PIN, die man auf http://blackbox.raumzeitlabor.de/BenutzerDB/ einsehen kann. Wer noch keine PIN hat, kann sie bei sECuRE beantragen.
Zum Abschließen des Raums gibt man die Pin 666, gefolgt von der Rautetaste ein.
In Arbeit ist derzeit das Pinpad/Frontendv2.
Überblick
Das Pinpad besteht aus mehreren Teilen:
- Das Frontend hängt draußen vor der Tür. Es wird separat mit Strom versorgt und kommuniziert via RS232 mit dem Pinpad-Controller innen. Im Frontend steckt keine Logik, es ist nur Benutzerschnittstelle nach außen.
- Der Pinpad-Controller befindet sich innen, oben auf dem Schrank direkt neben der Tür. Er nimmt am Hausbus teil und stellt dort den Türstatus zur Verfügung. Weiterhin steuert er den HomeTec++ an um die Tür zu entriegeln und verriegeln.
- Der HomeTec++ ist eine Platine, welche die beiden Motoren im HomeTec-Türschloss steuert (die originale Elektronik fanden wir ungeeignet).
- Auf der Blackbox läuft die Benutzerdatenbank. Dort läuft auch eine Software, welche via Hausbus PIN-Eingaben validiert und die Tür öffnet (Benutzer-PINs). Der Pinpad-Controller hat noch eine hardcoded PIN, sofern die Blackbox oder der Hausbus aus irgendwelchen Gründen nicht funktioniert. Geplant ist hier eine Synchronisation.
Ein Video der Funktionalität (noch mit original HomeTec) sieht man auf http://www.youtube.com/watch?v=54flBqny6HU
Details
Frontend
Die Firmware befindet sich auf https://github.com/raumzeitlabor/pinpad/tree/master/firmware-aussen
Derzeit kommunizieren wir via RS232 zwischen Frontend und Pinpad-Controller. Aufgrund besserer Stabilität wird das im Pinpad/Frontendv2 aber via RS485 gelöst werden. Es gibt Befehle für Tastendrücke (Frontend → Controller), die verschiedenen LEDs und Piepscodes (Controller → Frontend) und ein simples Ping/Pong-Protokoll, welches beide Seiten nutzen können, um sicherzustellen, dass die Kommunikation noch funktioniert.
Pinpad-Controller
Die Firmware befindet sich auf https://github.com/raumzeitlabor/hausbus/tree/master/firmware-pinpad
Der Pinpad-Controller kann drei Sensoren in der Tür auslesen:
- TODO
- TODO
- TODO
Den Sensorstatus stellt er auf dem Hausbus zur Verfügung (kann abgefragt werden, schickt aber auch selbstständig bei Änderungen ein entsprechendes Paket). Der Türstatus-Daemon schickt den Status dann zum RZL-Jail und zeichnet ihn in der Datenbank auf.
Weiterhin kommuniziert er mit dem HomeTec++ um die Öffnen- und Schließ-Befehle umzusetzen. Dabei schließt er solange auf bzw. zu bis die Sensoren vermelden, dass offen bzw. zu ist.
Im Pinpad-Controller befindet sich eine fest eingespeicherte PIN. Diese sollte man aber nicht benutzen, sondern stattdessen die Benutzer-PINs. Die fest eingespeicherte wird noch funktionieren, solange die Synchronisation der Benutzer-DB auf den Pinpad-Controller-EEPROM noch nicht läuft.
HomeTec++
Schaltplan, Layout, Firmware befinden sich auf https://github.com/raumzeitlabor/pinpad/tree/master/hometecpp
Das HomeTec++ kommuniziert via PWM (zwei Leitungen, die jeweils über die Pulsweite einen Zustand empfangen bzw. senden) mit dem Pinpad-Controller, da wir keine seriellen Schnittstellen mehr frei hatten.
BenutzerDB-validator
Die Software befindet sich auf https://github.com/raumzeitlabor/rzl-benutzerdb/tree/master/pin-validator