Ruum42
Hackerspace in St.Gallen
Sie sind hier
Schlosssystem
Aktives Projekt
Anforderungen
-
Jedes Vollmitglied soll jederzeit Zugang zum Hackerspace haben ohne sich mit anderen Mitgliedern absprechen zu müssen.
-
Die Benutzung des Schlossystems soll nicht viel komplizierter sein als die Benutzung eines mechanischen Schlüssels.
-
Die Sicherheit soll mit der eines mechanischen Schlosses ebenbürtig sein.
-
Als Backup soll das mechanische Schloss weiterhin funktionsfähig bleiben.
-
Die Zutrittsberechtigung soll jedem Mitglied separat entzogen werden können. Dies soll am Schliessystem direkt gemacht werden können ohne einen „Schlüssel“ einziehen zu müssen.
-
Die Vervielfältigung eines „Schlüssels“ sollte ähnlich schwierig sein wie die Vervielfältigung eines mechanischen Schlüssels
Umsetzung
AKTUELL
Di, 15.07.14
Do, 17.07.14
Do, 04.09.14
SESAM ÖFFNE DICH
Raimund am basteln
HARDWARE
-
Eine Mechanik welche den Schliesszylinder von innen auf und zudrehen kann. Die Bewegung von Aussen über einen Schlüssel darf dabei nicht blockiert werden.
-
Ein elektrisches Schliessblech (Klickklack™) auf der Höhe des Türfallen- Riegel.
-
Die Mechanik muss die Position der Türfalle detektieren können. Dies ist erforderlich um den Schliessvorgang auszulösen.
-
Die Türfalle aussen wurde durch einen Knauf ersetzt. Dieser ist gegen verdrehen gesichert. Dank der vorhandenen Mechanik kann der Türfallen- Riegel mit dem Schlüssel, der Türfalle innen oder dem Schloss- Drehknopf innen bewegt werden. (als Backup)
-
Das Schlosssystem soll durch Einschalten der äusseren Lampe „scharf“ geschaltet werden. Deshalb brauchen wir ein Relais welches parallel zur Lampe geschaltet wird, womit dem Raspberry Pi der aktuelle Zustand der Lampe mitgeteilt werden kann.
-
Raimunds Vorschlag zufolge soll das Schlosssystem ständig „scharf“ sein und direkt auf Bluetooth- Verbindungen reagieren. Das Relais würde in dieser Version mit dem inneren Licht verbunden wodurch die Türe auch bei unterbrochener Bluetooth- Verbindung offen gehalten resp. bei geschlossener Türe geöffnet werden könnte. Beide Varianten stellen die gleichen Anforderungen an die Hardware und machen nur einen kleinen Unterschied in der Software aus. Die Vor- und Nachteile müssen noch abgewogen und darauf entschieden werden.
-
HPO gibt zu bedenken, dass es zwingend außen einen Schalter braucht, da mittels einfacher BT presence nicht unterschieden werden kann, ob eine berechtigte Person KOMMT (aufschließen) oder GEHT (abschließen). Auch alle Timeout - Lösungen funktionieren nicht. Und schließlich braucht es fürs UI eine EINDEUTIGE Anzeige, ob abgeschlossen ist. Spnst ist das Ziel Sicherheit nicht erreicht.
-
-
-
Der Zutritt soll per Bluetooth gewährt werden. Dafür wird ein beliebiges Gerät initial mit dem Schlosssystem verbunden. Diese Verbindung gilt als Authentifizierung. Sie kann auf Seite des Schlosses jederzeit bei Bedarf entfernt werden.
-
Als Öffnungs-Event muss die bewusst ausgelöste Kontaktaufnahme genommen werden, damit nicht ab- und gleich wieder aufgeschlossen wird (z.B. auch Disconnect vor der Türe und Re-Connect wenn man am Fenster zum Bus vorbeigeht…) — hans-peter_oeri 2012/12/09 16:50
-
Schlage vor dass die BT Verbindung weiterhin automatisch aufgebaut werden kann. (Alles andere ist, abhängig vom Gerät, unter Umständen recht kompliziert) Zur Absicherung sollten wir dann aber das Signal der Türklinke als Auslöser für die Öffnung verwenden. — werner 2012/12/09 17:07
-
Die Steuerung des Riegel sowie der Bluetooth- Stack wird von einem Embedded Linux System auf einem Raspberry Pi übernommen. Für die Umsetzung der GPIOs auf 12V für den Magnetriegel wurde eine Erweiterungsplatine hergestellt.
VERBESSERUNGSVORSCHLÄGE
Für die nächste Version der Erweiterungsplatine sollten folgende Verbesserungen beachtet werden:
-
Zusätzlich zu den SMD Pads sollten Bohrungen für klassische Bauteile vorgesehen werden. Es gibt genügend Platz auf der Platine für eine doppelte Auslegung.
-
Die Pull-down Widerstände an den Eingängen können wegfallen. Zumindest fällt mir keine Sinnvolle Schaltung damit ein.
-
Die LEDs sollten wenn möglich so geschaltet werden dass
-
die Platine ohne oder mit defekten LEDs auch funktioniert
-
die LEDs der Ausgänge auch ohne Verbraucher funktionieren
-
-
Die Ein- und Ausgänge sollten voneinander getrennt in separaten Steckern vorgesehen werden. (Kurzschlusspotential bei Fehlmanipulation wird dadurch verringert )
-
Sowohl die Ein- als auch die Ausgänge brauchen +12V nebst den geschalteten Leitungen. Die GND Pins können wir uns an der Stelle dagegen sparen.
SOFTWARE
-
Linux
-
BlueZ
-
Programmierung auf Raspberry Pi
SCRIPTE
setup-gpio.sh wird per /etc/rc.local aufgerufen um die GPIOs zu konfigurieren:
#!/bin/bash #inputs echo "24" > /sys/class/gpio/export echo "25" > /sys/class/gpio/export #outputs echo "18" > /sys/class/gpio/export echo "23" > /sys/class/gpio/export sleep 1 #inputs echo "in" > /sys/class/gpio/gpio24/direction echo "in" > /sys/class/gpio/gpio25/direction #invert values echo 1 > /sys/class/gpio/gpio24/active_low echo 1 > /sys/class/gpio/gpio25/active_low #outputs echo "out" > /sys/class/gpio/gpio18/direction echo "out" > /sys/class/gpio/gpio23/direction
test.sh kann manuell aufgerufen werden um die Werte der Inputs im Sekundentakt in die Outputs zu schreiben:
#!/bin/bash while : do cat /sys/class/gpio/gpio24/value > /sys/class/gpio/gpio18/value cat /sys/class/gpio/gpio25/value > /sys/class/gpio/gpio23/value echo "the ultimate infinite enterprise loop" sleep 1 done
Der Code des Schlosssystems findet sich auf GitHub.
SCHLÜSSEL
-
Beliebiges Bluetooth Gerät - das Pairing dient als Authentifikation.
IDEENSAMMLUNG
Diese Ideensammlung stammt noch aus den Anfängen. Die aktuellen Ideen stehen bereits oben unter Umsetzung.
-
z.B. mit RFID oder WiFi/SSH oder Codeschloss oder …
Damit Mitglieder immer hinein können und nicht dutzende Schlüssel kopiert werden müssen
-
Datei auf USB-Memorystick als Schlüssel (USB-Kabel kann gut durchs Fenster verlegt werden); entweder beliebigen USB-Stick, oder mit solch coolen Dingern: http://www.flashusb.de/usb-sticks/index.htm
Wichtig bei USB Schloss: Die Schnittstelle darf Eingabegeräte nicht akzeptieren. Sonst kann jemand eine Tastatur anschliessen und das Schloss von hinten herum knacken.
-
Schlüsseltresor mit Zifferncode à la „Veloschloss“, kurzfristige Lösung, Probleme Montage und Schlüsselrückruf (Codewechsel unumgänglich), z.B. Migros Do-It-Yourself „ABUS KeyGarage“ Fr. 70)
Christoph:
Bin heute auf Umwegen wieder mal bei ELV gelandet und habe mal dieses
Funkschloss-Nachrüstsystem angesehen, von dem ich schon erzählt hatte.Das System heisst Key-Matic und gibt es auch in einer
fast-fertig-Bausatz Variante. Kostet mit 110.- Fr. auch weniger als
gedacht:
http://www.elv.ch/output/controller.aspx?cid=74&detail=10&detail2=13254&flv=&bereich=&marke=Hinweise zur Mongage/Zylinderkompatibilität:
http://www.elv.ch/output/controller.aspx?cid=680&detail=10&detail2=43Nein, ich möchte nicht ein fix-fertiges Produkt kaufen. Key-Matic
erfüllt auch nur schlecht unsere Ansprüche (z. B. kostet eine
zusätzliche Fernbedienung 26.- Fr.)
Aber ich würde Vorschlagen, den Schlosskasten (Schlosszylindermontage,
Antrieb, Gehäuse, Möglichkeit des manuellen Öffnens von innen etc.) als
BASIS für unser eigenes Zutrittssystems zu nutzen (Und modifizieren
soweit wie es nötig ist).
ALTLASTEN
Der Vollständigkeit halber habe ich mal alles was im aktuellen System nicht mehr gebraucht wird hier hin verschoben.
ALTES PROTOKOLL VOR DER UMSETZUNG PER RASPBERRY PI
Das Kommunikationsprotokoll zwischen Mikrocontroller und Steuerungsrechner ist wir folgt definiert:
-
Textprotokoll über Serielle Schnittstelle.
-
Als Codierung ist ASCII zu verwenden.
-
Das Zeilenende ist LF (\n)
-
Es werden nur Kleinbuchstaben verwendet
-
Die Kommunikation kann von beiden Seiten angestossen werden.
-
Ein Kommunikationsvorgang besteht immer aus einem Befehl und einer Antwort. Die Antwort muss innerhalb von 100 ms gegeben werden. Keine Antwort innerhalb dieser Zeit wird als Fehler gewertet.
-
Verfügbare Befehle (mit den möglichen Antworten) vom Steuerungsrechner an den Mikrocontroller sind:
Befehl | Beschreibung des Befehls | Antwort | Beschreibung |
---|---|---|---|
open | Schloss Öffnen | unlocked | Es ist bereits offen |
busy | Schliess- oder Öffnungsvorgang im Gange | ||
error | Der Zustand des Schlosses ist unbekannt / fehlerhaft | ||
close | Schloss schliessen | locked | Es ist bereits geschlossen |
busy | Schliess- oder Öffnungsvorgang im Gange | ||
error | Der Zustand des Schlosses ist unbekannt / fehlerhaft | ||
lockstatus | Den Status des Schlosses abfragen | locked | Das Schloss ist geschlossen |
unlocked | Das Schloss ist offen | ||
busy | Schliess- oder Öffnungsvorgang im Gange | ||
error | Der Zustand des Schlosses ist unbekannt / fehlerhaft | ||
greenledon | Schalte die grüne LED ein | ok | Wurde ausgeführt oder war bereits an |
redledon | Schalte die rote LED ein | ok | Wurde ausgeführt oder war bereits an |
greenledoff | Schalte die grüne LED aus | ok | Wurde ausgeführt oder war bereits aus |
redledoff | Schalte die rote LED aus | ok | Wurde ausgeführt oder war bereits aus |
ledstatus | Den Status der LEDs abfragen | green | Die grüne LED ist eingeschaltet |
red | Die rote LED ist eingeschaltet | ||
both | Beide LEDs sind eingeschaltet | ||
none | Keine LED ist eingeschaltet |
-
Verfügbare Befehle (mit den möglichen Antworten) vom Mikrocontroller an den Steuerungsrechner sind:
Befehl | Beschreibung des Befehls | Antwort | Beschreibung |
---|---|---|---|
locked | Das Schloss hat soeben den Schliessvorgang erfolgreich abgeschlossen | ok | Meldung angekommen |
unlocked | Das Schloss hat soeben den Öffnungsvorgang erfolgreich abgeschlossen | ok | Meldung angekommen |
handlesignal | Die Türklinke wurde nach oben gedrückt | ok | Meldung angekommen |
buttonpressed | Der Knopf auf der Innenseite wurde betätigt | ok | Meldung angekommen |
error | Es ist soeben ein Fehler aufgetreten | shit | Meldung angekommen |
ANSCHLUSSMASSE ALTER RUUM
SCHLIESSZYLINDER
-
Gewinde: M3
-
Anschluss Durchmesser: 8
-
Flansch Schlüsselweite: 6
-
Flansch Tiefe: 11
-
Aussendurchmesser Flansch am Knauf: 15.1
-
Tiefe Aussendurchmesser Flansch: 4
TÜRBLENDE
-
Vierkant: 8
-
Dicke Blende: 9.6
-
Dicke Abdeckung: 10.5
-
Breite Blende: 33.6
-
Breite Abdeckung: 32.7
-
Abstand Bolzen: 91.5
-
Lichtmass zu Vierkant: 78.5
-
Durchmesser Loch in Blende unten: 22.4
-
Durchmesser Loch in Blende oben: 26.4
-
Lochabstand in Blende: 94