Türschloss: Difference between revisions

From CCC Basel Wiki
Jump to navigation Jump to search
mNo edit summary
 
Line 56: Line 56:
=== Clients ===
=== Clients ===


Siehe [[/Client-Einrichtung]].
{|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 ===

Latest revision as of 18:11, 11 May 2024

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.


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

Siehe /Client-Einrichtung.

Status-Anzeige

Format: JSON

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