Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

tuerschloss_implementierung [2019-02-12 19:57] (aktuell)
binarydiv von [[tuerschloss]] ausgelagert
Zeile 1: Zeile 1:
 +====== Elektronisches Türschloss (Implementierung) ======
 +
 +Diese Seite dokumentiert die Implementierung,​ Administration etc. des elektronischen Türschlosses.
 +
 +Zum Thema Bedienung (auf-/​zuschließen,​ Schlüsselvergabe) siehe [[tuerschloss|hier]].
 +
 +
 +===== Hardware =====
 +Das Schloss ist ein [[https://​www.eq-3.de/​produkte/​eqiva/​bluetooth-smart-tuerschlossantrieb.html|equiva BLUETOOTH® Smart Türschlossantrieb]].
 +Angesteuert wird alles von einem RPI Zero W über Bluetooth Low Energy. Die Hardware ist in einer transparenten Box verbaut. Die Box bekommt einmal 12V und bucht sich via WLAN ins AfRA Netz ein.
 +
 +{{:​projekte:​schloss.jpg?​400|}}
 +{{::​schloss_2.jpg?​400|}}
 +{{:​img_20190117_210558.jpg?​400|}}
 +
 +Der RFID Reader ist ein [[https://​www.amazon.de/​dp/​B018OYOR3E|Neuftech EM4100 Reader]] für 125KHz Token. Quasi jeder Token der den EM4100 Standard verwendet lässt sich benutzen. Die meisten RFID Karten (BVG, Mensa) sind inzwischen 13,56MHz, was aber nicht durch unsere Glastür funktionieren würde.
 +
 +===== Software =====
 +
 +Angesteuert wird das Schloss von Python-Skripten (/​opt/​afra_door/​*.py) auf dem RPI. Diese sind für den open/close user als login-shell hinterlegt. Außerdem gibt es noch den Close-Button-Watcher als systemd daemon. Der open/close user haben kein Passwort, Authentifizierung nur via ssh key.
 +
 +Zur Kommunikation mit dem Schloss wird [[https://​www.npmjs.com/​package/​keyble|keyble]] benutzt.
 +
 +Um Keys deployen zu können und das System zu ändern gibt es den "​pi"​ user.
 +
 +Die Verbindung RPI <-> Schloss ist mit einem PSK gesichert, welcher als QR Code vorliegt. Aus dem PSK leitet sich ein user-key ab. Der einzige user-key ist aktuell auf dem RPI hinterlegt. Die PSKs liegen derzeit bei ciko (und werden an den Vorstand übergeben).
 +
 +Die aktuelle Software findet sich unter [[https://​github.com/​afra/​afra_door]]
 +
 +
 +===== Administration =====
 +
 +==== Einen User Deployen ====
 +Um einen neuen User zu deployen/​löschen:​
 +  * Logge dich mit dem user "​pi"​ auf dem Schloss ein
 +  * Füge den ssh key zu ///​home/​open/​.ssh/​authorized_keys//​ und ///​home/​close/​.ssh/​authorized_keys//​ hinzu
 +  * Lese den RFID Token mit ///​home/​pi/​utils/​read_rfid_token.py//​ aus
 +    * Starte das Script
 +    * Warte auf "​Connected to RFID Reader"​
 +    * Halte den Token an den Leser
 +    * Kopiere die ausgegebene Nummer und den MD5 Token
 +  * Füge den RFID Token Nummer zu ///​home/​open/​rfid_codes.txt//​ hinzu
 +    * Füge den Code als erstes Wort in einer neuen Zeile hinzu. Weitere Worte werden als Kommentare ignoriert.
 +  * Lege den Nutzer auf [[intern:​tuerschloss|Status Ausrollens des neuen Türschloss]] an. Der MD5 wert wurde von read_rfid_token.py als zweites Wort ausgegeben
 +
 +
 +===== Status der Implementierung =====
 +  * Auf-/​zuschließen via SSH (done)
 +  * Zuschließen via Button + Timer (done)
 +  * Auf-/​zuschließen via Buttons am Schloss (done)
 +  * Aufschließen via RFID Token (done)
 +  * Status-Abfrage via HTTP (done)
 +
 +Noch zu tun:
 +  * Statische IP/​Hostname/​DNS für das Schloss (?)
 +  * Sicherheitsschloss einbauen, Inbetriebnahme (15.02.2019)
 +  * (?) Zuschließen via RFID?
 +  * Hübsch machen, besseren Schalter (zum Schließen) anbringen
 +  * Schalter-Delay reduzieren (halbe Sekunde ist zu lang)
 +  * Admin-Utils zur einfachen Key-Verwaltung,​ Backup etc.
  
Drucken/exportieren