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-01-09 18:48] – [Vor dem Launch noch zu tun] cikotuerschloss [2022-02-22 17:34] (aktuell) – [Schlüssel bekommen] zotan
Zeile 1: Zeile 1:
-====== Türschloss (WIP) ======+====== Elektronisches Türschloss ======
  
-Diese Seite dokumentiert das elektronische Türschloss der AfRA.+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.
  
-===== Funktionen ===== +Diese Seite beschreibt die Bedienung des Schlosses. Für Details zu Implementierung, Administration etc. siehe [[tuerschloss_implementierung|Türschloss (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 (tbd)+
  
-===== Benutzen ===== +{{:img_20190117_210636.jpg?200|}}
-WichtigDas Schloss prüft nur alle 5-10 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 ==== 
-Dein SSH-Key muss auf dem Türschloss hinterlegt sein! //(Hier fehlt der Prozess, wer wann Keys bewilligt und wer diese auf dem Türschloss deployt)// 
  
-Verbinde dich mit dem AfRA WLAN und ssh auf open@SCHLOSS_IP (derzeit 172.23.42.114) auf. Achte darauf, den hinterlegten ssh-key zu nutzen (ssh -i PFAD_ZUM_KEY open@SCHLOSS_IP). Das Schloss öffnet sich innerhalb vom 10 Sekunden.+===== Schlüssel bekommen =====
  
-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 sindda sonst das System seinen State verliert und sich neu kalibrieren muss).+Um einen Schlüssel für die AfRA zu erhaltenwende dich bitte an das monatliche [[plenum|Plenum]]Für mehr details, siehe [[Infos für Mitglieder#Schlüssel]]
  
-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: +Es gibt hierbei zwei Arten von elektronischen Schlüsseln für das SchlossSSH-Keys und RFID-Tokens.
-* Your name here+
  
-==== Tür zuschließen ==== +  Für **SSH-Authentifizierung** erzeuge bitte ein SSH-Schlüsselpaar (''ssh-keygen''). Der **Public** Key wird dann auf dem Türschloss hinterlegt.  
-  Option 1: Drücke den Button an der Seite des transparenten Kontrollkastens. Eine rote LED leuchtet. Ziehe 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! +  * Ein **RFID-Token** (oder eine Karte) kannst du von uns bekommen. Es sollte sich jedoch auch jedes andere RFID-Token nach dem EM4100-Standard (125kHzals Schlüssel registrieren lassen.
-  Option 2: ssh auf close@SCHLOSS_IP 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 öffnen Bitte nutze diese Option nur wenn die Batterien leer sind, da sonst das System seinen State verliert und sich neu kalibrieren muss).+
  
-===== Hardware ===== +Gerne kannst du auch beide Varianten nutzen (für mehr Redundanz!).
-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|}} +Für Notfälle bzwAusfälle des elektronischen Schlosses existieren auch physische Schlüssel. Diese werden jedoch nur an eine //kleine// Anzahl von Mitgliedern vergeben, die z.B. in der Nähe der AfRA wohnen und in Notfällen aufschließen können.
-{{::schloss_2.jpg?400|}}+
  
-===== 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.+===== Bedienung =====
  
-Um Keys deployen zu können und das System zu ändern gibt es den "pi" user. //(Hier fehlt wie wer wann die Keys deployt)//+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.
  
-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 er sollte diese bei Implementierung an $Vorstand übergeben)// 
  
-===== Vor dem Launch noch zu tun ===== +==== Aufschließen (beim Betreten der AfRA) ==== 
-  Statische IP/Hostname/DNS für das Schloss + 
-  * (DoneEin Sicherheitsschloss (Schlüssel geht von beiden Seiten gleichzeitigkaufen +Um via **SSH** aufzuschließen, verbinde dich zunächst mit dem AfRA-WLAN (discord). \\ 
-    ciko hat ein Schloss besorgt +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''). \\ 
-  * Sicherheitsschloss einbauen +Das Schloss öffnet sich innerhalb von 10 Sekunden. 
-  * Bequemeres Key Management + 
-  * Ein Prozess, um die physischen Keys umzutauschen +Um via **RFID** aufzuschließen, halte dein RFID-Token oder deine RFID-Karte gegen den RFID-Reader. 
-  * Ein Prozess, um einen Key zugesprochen zu bekommen und das deployment zu regeln +Dieser ist hinter der Glastür eingebaut (schwarze Fläche mit rot-leuchtender LED). \\ 
-  * Aufhängen der Box mit dem RPI in Türnähe+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! 
 + 
 + 
 +==== Bedienung des Schlosses innerhalb der AfRA ==== 
 + 
 +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ürbefinden. 
 +Diese reagieren ohne Verzögerung. Der obere Button schließt auf, der untere Button zu. 
 + 
 +Wenn einmal gar nichts mehr geht, z.B. weil die Batterien leer sind, lässt sich das Schloss auch per Hand am Rad öffnen und schließen. Bitte nutze diese Option jedoch **nur**, wenn es notwendig ist, da das System hierdurch seinen State verliert und sich neu kalibrieren muss. 
 + 
 + 
 +===== Status-Abfrage via HTTP ===== 
 + 
 +Innerhalb des WLANs (discord) ist es möglich, über HTTP den aktuellen Status des Türschlosses abzufragen. 
 + 
 +Hierfür reicht ein simpler GET-Request auf http://door:8080, beispielsweise mittels ''curl door:8080''
 + 
 +Der HTTP-Server antwortet dann mit ''Door status: //STATUS//'', wobei ''//STATUS//'' einer der folgenden Status-Werte ist: 
 + 
 +  * ''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 Spezifikation, sollte bei uns aber nicht auftreten, da "aufgeschlossen" und "offen" bei unserer Tür dasselbe sind) 
 + 
 +//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.// 
 + 
 + 
 +===== Implementierung ===== 
 + 
 +Wer sich dafür interessiert, wie das Türschloss funktioniert, oder es gerne nachbauen möchte, findet Details zur Implementierung, Administration etc. unter [[tuerschloss_implementierung|Türschloss (Implementierung)]]. 
 + 
 +Das Schloss wurde am 15.02.2019 in Betrieb genommen. 
Drucken/exportieren