Pinpad v1: Unterschied zwischen den Versionen
Monika (Diskussion | Beiträge) (ohne ipv6 BenutzerDB) |
Else (Diskussion | Beiträge) K (→Überblick: moar infos) |
||
Zeile 23: | Zeile 23: | ||
== Überblick == | == Überblick == | ||
[[Datei:PinpadControllerundHometecpp.jpeg|200px|thumb|right|Pinpad-Controller und Hometec++ im Gehäuse]] | |||
Das Pinpad besteht aus mehreren Teilen: | 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. | * 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 | * Der Pinpad-Controller befindet sich zusammen mit dem Hometec++ in einem Gehäuse (siehe rechts) 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). | * 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. | * Auf der Blackbox läuft (noch) die Benutzerdatenbank. Der Pinpad-Controller broadcastet regelmäßig den CRC seines EEPROMs, in dem die PINs gespeichert sind, sodass man auch ohne funktionierenden Hausbus oder Datenbank den Raum öffnen kann. Wenn der CRC des Controllers von dem berechneten CRC auf Basis der Datenbank abweicht (z.B. wegen neuen oder ausgetretenen Mitgliedern), so werden die PINs neu synchronisiert. Zusätzlich gibt es noch eine hardcoded PIN, die dem Vorstand bekannt ist. | ||
Ein Video der Funktionalität (noch mit original HomeTec) sieht man auf http://www.youtube.com/watch?v=54flBqny6HU | Ein Video der Funktionalität (noch mit original HomeTec) sieht man auf http://www.youtube.com/watch?v=54flBqny6HU |
Version vom 31. Januar 2013, 10:05 Uhr
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 mit ipv6 auf http://blackbox.raumzeitlabor.de/BenutzerDB/ und ohne ipv6 auf https://raumzeitlabor.de/BenutzerDB/ einsehen kann. Wer noch keine PIN hat, muss sich dort erst einen Benutzernamen anlegen und dann die dort angegebenen Admins kontaktieren.
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 zusammen mit dem Hometec++ in einem Gehäuse (siehe rechts) 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 (noch) die Benutzerdatenbank. Der Pinpad-Controller broadcastet regelmäßig den CRC seines EEPROMs, in dem die PINs gespeichert sind, sodass man auch ohne funktionierenden Hausbus oder Datenbank den Raum öffnen kann. Wenn der CRC des Controllers von dem berechneten CRC auf Basis der Datenbank abweicht (z.B. wegen neuen oder ausgetretenen Mitgliedern), so werden die PINs neu synchronisiert. Zusätzlich gibt es noch eine hardcoded PIN, die dem Vorstand bekannt ist.
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 Taster in der Tür auslesen:
- Ein Taster ist im Türrahmen befestigt und wird geschlossen, wenn jemand die Tür abschließt.
- Zwei Taster sind im Schloss, je einer für abgeschlossen und offen.
Ein Magnetsensor ist oben am Türrahmen befestigt und wird von einem Magneten geschlossen, wenn die Tür zu ist, unabhängig vom Zustand des Schlosses. Dieser Magnetsensor wird noch nicht ausgelesen.
Der Pinpad-Controller stellt den Sensorstatus 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
Fotos
Mehr Fotos gibts bei Flickr