Pinpad v1

Aus RaumZeitLabor Wiki
Zur Navigation springen Zur Suche springen
   
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 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.

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