-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Die Tür (z.B. die Haustür) mit dem Handy auf Knopfdruck öffnen!
Im Kern steht ein Arduino, der an einem Output-Pin an ein Relais angeschlossen ist und damit die Tür öffnet. Ziel ist es, dass ich Personen meines Vertrauens ermöglichen möchte, über die App die Tür zu öffnen. Dies soll natürlich so sicher sein, dass niemand sonst Zugriff hat.
-
Arduino (mit Relais und Ethernet-Shield) zum Tür öffnen. Per Internet/HTTP nicht direkt von "außen" erreichbar. (Steht bei mir im gut geschützten internen Netz.) Enthält eine einfache PIN-Logik. Die PINs (4 Ziffern) werden nur hier (im Arduino intenen Speicher) gespeichert. Der Benutzer muss sie sich merken. Dadurch entsteht auch dann ein zusätzlicher Schutz für den Fall des Handy-Verlusts.
- Der Arduino-Sketch findet sich hier im Repo unter "Tuerauf_arduino".
- Es ist ein File config.h (Vorlage config-template-h) anzulegen.
- Darin sind die verschiedenen Arduino-Anschluss-Pins, IP-Nummer etc. festgelegt.
- Es sind zwei Relais anzuschließen:
- Eins, welches die Tür öffnen (das Wesentliche!)
- Eins, welches zum Test regelmäßig geschaltet und geprüft wird, um zu bemerken, wenn die Relais nicht mehr schalten. Dazu ist dieses 2. Relais so zu verschalten, dass ein Arduino-Input-Pin durch den Schaltvorgang (LOW) von 0 auf 5V gezogen wird. Dies prüft die Sketch-Logik uns stellt so Fehlverhalten fest.
- Der Arduino-Sketch findet sich hier im Repo unter "Tuerauf_arduino".
-
Web-Server Von "außen" (Internet) erreichbar. enthält Logik zum Registrieren der Benutzer-Apps. Reicht erfolgreich authentifizierte Aufrufe an den Arduino weiter.
- nur Zugriffe, die das APPSECRET (s.u.) enthalten, werden bearbeitet.
- die "alte" PHP-Version liegt hier im Repo im Verz. "php" (ist aber nicht mehr zu verwenden)
- die neue Java-Version liegt im Repo https://github.com/dsteinkopf/tuerauf-backend-java
- Sie ist außerdem als Docker-Image zu haben: https://registry.hub.docker.com/u/dsteinkopf/tuerauf/ (Tag "prod" ist ein automatisch erstelltes Image des master-Branches.)
- App wird mit Hilfe eines App-Links der Form tuerauf:///?https%3A%2F%2Fmeinedomain.top%2Ftuerauf%2Ffrontend%2F/APPSECRET konfiguriert. Damit wird eingestellt, dass der Webserver unter https://meinedomain.top/tuerauf/frontend/ zugreift, welcher durch das APPSECRET geschützt ist. Die App speichert folgendes persistent:
- APPSECRET, um überhaupt auf den Server zugreifen zu können
- Einen geheimen Key ("installationID") des Users, der beim Registrieren des Users von der App aus erzeugt wird und später den User beim Server identifiziert und authentifiziert.
- NICHT gespeichert: Die Geo-Koordinaten, wo sich die Tür befindet.
- NICHT gespeichert: Die PIN des Users.
Folgende Schritte sind nötig, um die App zu verwenden:
- App installieren
- Konfig-Link im Handy anklicken (s.o.)
- App beim Server registrieren:
- Klick auf Zahnrad; Name
- gewünschte PIN eingeben
- "Speichern" klicken: App ruft BASEURL/frontend/registerUser?appsecret=APPSECRET&installationId=ii1&name=nn1&pin=1111 auf.
- Server-Admin muss Benutzer freischalten (ggf. vorher mündliche Rücksprache):
- Admin zeigt User an: BASEURL/dashboard/ (Java-Backend / eigenes Repo)
- Admin aktiviert dort neue User
- Admin schickt PINs an arduino, indem er die vorher passwordPin (im Arduino-Sketch im config.h festgelegt) eingibt.
- Benutzer begibt sich in die Nähe der im Server gespeicherten Koordinaten, ruft die App auf und gibt seine PIN ein.
Diese App, jeglicher Code und Informationen dienen lediglich zu Informations- und Weiterbildungszwecken. Sie sind nicht für den Produktivbetrieb gedacht. Der Anbieter der App stellt sie, so wie sie sind, zur Verfügung - ohne jeglichen Support oder Haftung für etwaige direkte oder indirekte Schäden.