Türschloss

From CCC Basel Wiki
Revision as of 21:07, 20 September 2020 by S3lph (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Hardware

  • Raspberry Pi Zero W
  • «Eqiva BLUETOOTH SMART» Türschlossantrieb
  • Lichtschranke im Türrahmen
  • Pogopin-«Kontaktsensor»

Türschlossantrieb

  1. Das Bluetooth-Modul (zu sehen in Abb. 5) wurde entfernt. Lötarbeiten sind nicht notwendig, der Chip lässt sich einfach mit einem Seitenschneider vom PCB trennen.
  2. An die folgenden Testpads wurden Drähte angelötet und ins Batteriefach geführt:
    • MP10 (Taster «Öffnen»)
    • MP11 (Taster «Schliessen)
    • MP16 (GND)
    • MP17 (Vcc)

Lichtschranke

  • Die beiden Lichtschrankenteile wurden in einer 3D-gedruckte Halterung befestigt.
  • Die Halterung wurde durch das Loch für den Riegel in den Rahmen geführt und von aussen durch bereits existierende Löcher mit Schrauben befestigt.
  • Die Kabel der Lichtschranke wurden durch ein ebenfalls bereits existierendes Loch nach aussen geführt.

Kontaktsensor

  • Der Kontakt zwischen Tür und Rahmen wird mittels 4 Pogopins realisiert.
  • Die 4 Kontakte erfüllen 2 Zwecke:
    • Erkennen, ob die Tür geschlossen ist (Pogopin-Kontakt).
    • Erkennen, ob die Tür abgeschlossen ist (Anschluss der Lichtschranke via Pogopins).

Software

  • Python-Skript zum öffnen/schliessen via Raspi-GPIO-Pins
  • Ansteuerung via SSH Pubkey + ForceCommand
    • ssh open@<door> → öffnet das Schloss
    • ssh close@<door> → schliesst das Schloss
    • ssh status@<door> → Status-Abfrage des Schlosses
  • Ansteuerung via SSH (Alternative für Kompatibilität mit der «Trigger»-App)
    • ssh door@<door> open → öffnet das Schloss
    • ssh door@<door> close → schliesst das Schloss
    • ssh door@<door> status → Status-Abfrage des Schlosses
  • Ansteuerung via TLS Client Certificate + HTTP cgi-bin
    • https://<door>/door/open.py → öffnet das Schloss
    • https://<door>/door/close.py → schliesst das Schloss
    • https://<door>/door/status.py → Status-Abfrage des Schlosses

Clients

Name Plattform Installation
Trigger Android F-Droid GitHub

Status-Anzeige

Format: JSON

{
  "latch": "OPEN|CLOSED|UNKNOWN",
  "lock": "UNLOCKED|LOCKED|UNKNOWN"
}