Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tuerschloss [2019-02-09 01:53] – rewrite intro and "Schlüssel bekommen" binarydivtuerschloss [2022-02-22 17:34] (aktuell) – [Schlüssel bekommen] zotan
Zeile 1: Zeile 1:
 ====== Elektronisches Türschloss ====== ====== Elektronisches Türschloss ======
- 
-**-- Work in Progress. Inbetriebnahme ist am Freitag, 15.02.2019. --** 
  
 Die Eingangstür der AfRA verfügt über ein elektronisches Türschloss, welches mittels SSH-Public-Key-Authentifizierung oder RFID-Token geöffnet werden kann. Die Eingangstür der AfRA verfügt über ein elektronisches Türschloss, welches mittels SSH-Public-Key-Authentifizierung oder RFID-Token geöffnet werden kann.
 +
 +Diese Seite beschreibt die Bedienung des Schlosses. Für Details zu Implementierung, Administration etc. siehe [[tuerschloss_implementierung|Türschloss (Implementierung)]].
  
 {{:img_20190117_210636.jpg?200|}} {{:img_20190117_210636.jpg?200|}}
Zeile 10: Zeile 10:
 ===== Schlüssel bekommen ===== ===== Schlüssel bekommen =====
  
-Um einen Schlüssel für die AfRA zu erhalten, wende dich bitte an [[binarydiv@afra-berlin.de|Lexi]] (binaryDiv im [[irc://irc.freenode.net/#afra|IRC]]).+Um einen Schlüssel für die AfRA zu erhalten, wende dich bitte an das monatliche [[plenum|Plenum]]. Für mehr details, siehe [[Infos für Mitglieder#Schlüssel]]
  
 Es gibt hierbei zwei Arten von elektronischen Schlüsseln für das Schloss: SSH-Keys und RFID-Tokens. Es gibt hierbei zwei Arten von elektronischen Schlüsseln für das Schloss: SSH-Keys und RFID-Tokens.
  
   * Für **SSH-Authentifizierung** erzeuge bitte ein SSH-Schlüsselpaar (''ssh-keygen''). Der **Public** Key wird dann auf dem Türschloss hinterlegt.    * Für **SSH-Authentifizierung** erzeuge bitte ein SSH-Schlüsselpaar (''ssh-keygen''). Der **Public** Key wird dann auf dem Türschloss hinterlegt. 
-  * Ein **RFID-Token** kannst du von uns bekommen. Es sollte sich jedoch auch jedes andere RFID-Token nach dem EM4100-Standard (125kHz) als Schlüssel registrieren lassen.+  * Ein **RFID-Token** (oder eine Karte) kannst du von uns bekommen. Es sollte sich jedoch auch jedes andere RFID-Token nach dem EM4100-Standard (125kHz) als Schlüssel registrieren lassen.
  
 Gerne kannst du auch beide Varianten nutzen (für mehr Redundanz!). Gerne kannst du auch beide Varianten nutzen (für mehr Redundanz!).
Zeile 22: Zeile 22:
  
  
-===== Benutzen =====+===== Bedienung ===== 
 Wichtig: Das Schloss prüft nur alle 2-5 Sekunden nach neuen Befehlen - dafür halten die Batterien aber auch 1 Jahr (BLE). Es kann also einen Moment dauern, bis sich die Tür öffnet. Wichtig: Das Schloss prüft nur alle 2-5 Sekunden nach neuen Befehlen - dafür halten die Batterien aber auch 1 Jahr (BLE). Es kann also einen Moment dauern, bis sich die Tür öffnet.
  
-==== Tür aufschließen ==== 
-Verbinde dich mit dem AfRA WLAN und ssh auf open@door auf. Achte darauf, den hinterlegten ssh-key zu nutzen (ssh -i PFAD_ZUM_KEY open@door). Das Schloss öffnet sich innerhalb vom 10 Sekunden. 
  
-Alternativ kannst du dein RFID Token verwenden. Der Reader ist hinter der Glastür eingebaut (schwarze Fläche mit rot-leuchtender LED). Halte einfach deinen Token oder deine Karte gegen den Leser. Du hörst einen Piep und der Leser leuchtet Grün. Das Schloss sollte jetzt öffnen.+==== Aufschließen (beim Betreten der AfRA) ==== 
 + 
 +Um via **SSH** aufzuschließen, verbinde dich zunächst mit dem AfRA-WLAN (discord). \\ 
 +Verbinde dich dann mit ''ssh open@door'' zum Türschloss. Achte darauf, den hinterlegten SSH-Key zu nutzen (''ssh -i PFAD_ZUM_KEY open@door''). \\ 
 +Das Schloss öffnet sich innerhalb von 10 Sekunden. 
 + 
 +Um via **RFID** aufzuschließen, halte dein RFID-Token oder deine RFID-Karte gegen den RFID-Reader
 +Dieser ist hinter der Glastür eingebaut (schwarze Fläche mit rot-leuchtender LED). \\ 
 +Du hörst einen Piep-Ton und der Leser leuchtet Grün. Das Schloss sollte jetzt öffnen. 
 + 
 +Sollte sich die Tür nicht öffnen lassen, kann ein physischer Key trotzdem die Tür öffnen. Hier ist eine Liste mit Kontaktdaten zu physischen Keyholdern: [Link] FIXME 
 + 
 + 
 +==== Zuschließen (beim Verlassen der AfRA) ==== 
 + 
 +Wenn du als Letztes die AfRA verlässt, stell bitte sicher, dass du die Tür zuschließt. Beachte bitte außerdem die Hinweise im [[shutdown|Shutdown-Protokoll]]. 
 + 
 +Um die Tür zu verschließen, drücke den **Button an der Seite des transparenten Kontrollkastens** (siehe Fotos unten). Die rote LED im Kasten fängt an zu blinken. \\ 
 +Ziehe die Tür hinter dir zu. Nach ca. **10 Sekunden** schließt das Schloss selbstständig ab. Warte solange und prüfe dann, ob die Tür **wirklich** zu ist! 
 + 
 +Alternativ kannst du die Tür auch mit deinem **SSH-Schlüssel** zuschließen: ''ssh -i PFAD_ZUM_KEY close@door'' 
 + 
 +Wenn sich die Tür mal nicht abschließen lässt, du aber gehen möchtest, reboote einmal den Raspberry Pi im Kontrollkasten (Stecker raus, Stecker rein). 
 +Wenn das immer noch nicht funktioniert, nutze den **Backup-Schlüssel** (hängt oben an der Innentür) um zuzuschließen. 
 +**Bitte informiere die Mitglieder über die Mailingliste**, dass du die Tür manuell zugeschlossen hast, und bring den Schlüssel so bald wie möglich zurück! 
  
-Wenn du bereits im space bist, kannst du auch einfach den "Öffnen" Knopf auf dem Türschloss drücken. Dieser regiert sofort. Notfalls kannst du das Schloss per Hand am Rad öffnen - Bitte nutze diese Option nur wenn die Batterien leer sind, da sonst das System seinen State verliert und sich neu kalibrieren muss).+==== Bedienung des Schlosses innerhalb der AfRA ====
  
-Sollte sich die Tür nicht öffnen lassenkann ein physischer Key trotzdem die Tür öffnenHier ist eine Liste mit Kontaktdaten zu physischen Keyholdern: +Wenn du im Space bist und das Schloss auf- oder zuschließen möchtest, benutze die **zwei Buttons**, die sich am Türschloss selbst (weißer Kasten direkt an der Tür) befinden
-* Your name here+Diese reagieren ohne Verzögerung. Der obere Button schließt auf, der untere Button zu.
  
-==== Tür zuschließen ==== +Wenn einmal gar nichts mehr geht, z.Bweil die Batterien leer sind, lässt sich das Schloss auch per Hand am Rad öffnen und schließenBitte nutze diese Option jedoch **nur**, wenn es notwendig ist, da das System hierdurch seinen State verliert und sich neu kalibrieren muss.
-  * Option 1: Drücke den Button an der Seite des transparenten KontrollkastensEine rote LED blinkt im KastenZiehe die Tür hinter dir zu. Nach ca 10 Sekunden schließt das Schloss selbstständig ab. Prüfe ob die Tür wirklich zu ist! +
-  * Option 2: ssh auf close@door mit deinem hinterlegten Key.  +
-  * Option 3: Wenn du im space bist, kannst du auch einfach den "Schließen" Knopf auf dem Türschloss drücken. Dieser regiert sofort. Notfalls kannst du das Schloss per Hand am Rad schließen Bitte nutze diese Option nur wenn die Batterien leer sind, da sonst das System seinen State verliert und sich neu kalibrieren muss). +
-  * Option 4 (Backup): Wenn sich die Tür nicht abschließen lässt, du aber gehen möchtest reboote einmal den Raspi (Stecker raus, Stecker rein). Wenn das immer noch nicht funktioniert, nutze den Backup Schlüssel (hängt oben an der Innentür) um zuzuschließen. Bitte informiere die Mitglieder auf der Mailingliste, das du die Tür manuell zugeschlossen hast! und hänge den Schlüssel baldestmöglich zurück. +
-===== 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.+===== Status-Abfrage via HTTP =====
  
-===== Software ===== +Innerhalb des WLANs (discordist es möglich, über HTTP den aktuellen Status des Türschlosses abzufragen.
-Angesteuert wird das Schloss von Python-Skripten (/opt/afra_door/*.pyauf 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.+Hierfür reicht ein simpler GET-Request auf http://door:8080, beispielsweise mittels ''curl door:8080''.
  
-Um Keys deployen zu können und das System zu ändern gibt es den "pi" user.+Der HTTP-Server antwortet dann mit ''Door status: //STATUS//'', wobei ''//STATUS//'' einer der folgenden Status-Werte ist:
  
-Die Verbindung RPI <-Schloss ist mit einem PSK gesichertwelcher 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).+  * ''UNKNOWN'': Türstatus ist unbekannt 
 +  * ''LOCKED'': Tür ist zugeschlossen 
 +  * ''UNLOCKED'': Tür ist aufgeschlossen 
 +  * ''MOVING'': Schloss dreht sich in diesem Moment von einer Stellung zur anderen 
 +  * <del>''OPENED''</del>: (dieser Status existiert laut Spezifikationsollte bei uns aber nicht auftreten, da "aufgeschlossen" und "offen" bei unserer Tür dasselbe sind)
  
-Die aktuelle Software findet sich unter [[https://github.com/c1ko/afra_door]]+//Anmerkung: Es wäre naheliegend, aus dem Türschloss-Status den Space-Status (SpaceAPI, Schlosssymbol auf Startseite, IRC-Bot) abzuleiten. 
 +Dies ist jedoch aus mehreren Gründen explizit **nicht** gewünscht. Türschloss und Space-Status sind unabhängig voneinander. Sinn dieser Status-Abfrage ist beispielsweise eine space-interne Steuerung von Geräten, die nur dann angeschaltet sein sollen, wenn jemand da ist, z.B. Heizungsthermostat, Info-Displays, etc.//
  
-===== 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 ===== +===== Implementierung =====
-  * Auf-/zuschließen der AfRA via SSH (done) +
-  * Zuschließen der AfRA via Button + Timer (done) +
-  * Auf-/zuschließen via Buttons am Schloss (done) +
-  * Aufschließen der AfRA via RFID Token (done) +
-  * Status-Abfrage via HTTP (done)+
  
-Noch zu tun: +Wer sich dafür interessiert, wie das Türschloss funktioniertoder es gerne nachbauen möchte, findet Details zur Implementierung, Administration etcunter [[tuerschloss_implementierung|Türschloss (Implementierung)]].
-  * Statische IP/Hostname/DNS für das Schloss (?) +
-  * Sicherheitsschloss einbauenInbetriebnahme (15.02.2019)+
  
 +Das Schloss wurde am 15.02.2019 in Betrieb genommen.
  
Drucken/exportieren