Türschloss: Difference between revisions

From CCC Basel Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 9: Line 9:
=== Türschlossantrieb ===
=== Türschlossantrieb ===


# Das Bluetooth-Modul (zu sehen in Abb. 4) wurde entfernt. Lötarbeiten sind nicht notwendig, der Chip lässt sich einfach mit einem Seitenschneider vom PCB trennen.
# 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.
# An die folgenden Testpads wurden Drähte angelötet und ins Batteriefach geführt:
# An die folgenden Testpads wurden Drähte angelötet und ins Batteriefach geführt:
#* MP10 (Taster «Öffnen»)
#* MP10 (Taster «Öffnen»)
Line 53: Line 53:
* Python-Skript zum öffnen/schliessen via Raspi-GPIO-Pins
* Python-Skript zum öffnen/schliessen via Raspi-GPIO-Pins
* Ansteuerung via SSH Pubkey + ForceCommand
* Ansteuerung via SSH Pubkey + ForceCommand
** ssh open@<door> &rarr; öffnet das Schloss
** <code>ssh open@<door></code> &rarr; öffnet das Schloss
** ssh close@<door> &rarr; schliesst das Schloss
** <code>ssh close@<door></code> &rarr; schliesst das Schloss
** ssh status@<door> &rarr; Status-Abfrage des Schlosses
** <code>ssh status@<door></code> &rarr; Status-Abfrage des Schlosses
* Ansteuerung via SSH (Alternative für Kompatibilität mit der «Trigger»-App)
** <code>ssh door@<door> open</code> &rarr; öffnet das Schloss
** <code>ssh door@<door> close</code> &rarr; schliesst das Schloss
** <code>ssh door@<door> status</code> &rarr; Status-Abfrage des Schlosses
* Ansteuerung via TLS Client Certificate + HTTP cgi-bin
* Ansteuerung via TLS Client Certificate + HTTP cgi-bin
** https://<door>/door/open &rarr; öffnet das Schloss
** <code>https://<door>/door/open.py</code> &rarr; öffnet das Schloss
** https://<door>/door/close &rarr; schliesst das Schloss
** <code>https://<door>/door/close.py</code> &rarr; schliesst das Schloss
** https://<door>/door/status &rarr; Status-Abfrage des Schlosses
** <code>https://<door>/door/status.py</code> &rarr; Status-Abfrage des Schlosses

=== Clients ===

{|class="wikitable"
! Name
! Plattform
! Installation
|-
| Trigger
| Android
| [https://f-droid.org/en/packages/com.example.trigger/ F-Droid] [https://github.com/mwarning/trigger GitHub]
|}


=== Status-Anzeige ===
=== Status-Anzeige ===

Revision as of 20:07, 20 September 2020

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"
}