Ich hab hier einen RaspberryPi, an den ein Türöffner sowie Kamera + Türsprechanlage angeschlossen sind.
Zusätzlich hab ich einen RPi als Benutzerschnittstelle.
Jetzt stellt sich die Frage, wie ich die Kommunikation realisiere.
Anforderungen:
+ möglichst sicher:
Grundsätzlich möchte ich nur Geräten Zugriff auf das System geben, welche dazu auch berechtigt sind.
Da ich wegen der Kamera sowieso schon einen Apache am Laufen habe, liegt es natürlich nahe, den auch gleich für die Türkontrolle weiterzuverwenden.
Allerdings hab ich dabei zwei Probleme:
+ Wie realisiere ich hier eine Rechteverwaltung (zertifikatsbasiert)?
+ Wie erstelle ich hier eine vernünftige REST-API?
Am einfachsten wäre es meiner Meinung nach, wenn ich die verschiedenen Funktionen in verschiedene Unterordner packe, und diese dann mit .htaccess - Dateien schütze:
+ www/rest/doorctl/open
+ www/rest/doorctl/close
+ www/rest/doorctl/.htaccess
Nur ist das leider nicht besonders elegant, was Rechteverwaltung angeht - ganz zu Schweigen, dass ich gar nicht weiß, ob man mit .htaccess auch Client-Zertifikate verwalten kann...
Was haltet ihr davon?
PS:
Noch ein kleines Logikproblem:
Türöffner wird gedrückt => Client sendet alle 250ms das Kommando "Tür öffnen" an die Türkontrolle.
Auf der Türkontrolle läuft ein Timer, welcher die Tür für 500ms offen hält. Das Kommando "Tür öffnen" soll diesen Timer zurücksetzen.
Wie kann man das auf einem Webserver lösen? Den Timer in eine Datei schreiben/lesen tötet nur die SD-Karte...
Zusätzlich hab ich einen RPi als Benutzerschnittstelle.
Jetzt stellt sich die Frage, wie ich die Kommunikation realisiere.
Anforderungen:
+ möglichst sicher:
=> Authentifizierung über Client-Zertifikate
+ einfach erweiterbar, gut mit Scripten verwendbar=> RESTful-API?
------------------------------------------------------------------------------------------------------Grundsätzlich möchte ich nur Geräten Zugriff auf das System geben, welche dazu auch berechtigt sind.
=> OpenVPN/SSH-Tunnel
Da ich wegen der Kamera sowieso schon einen Apache am Laufen habe, liegt es natürlich nahe, den auch gleich für die Türkontrolle weiterzuverwenden.
Allerdings hab ich dabei zwei Probleme:
+ Wie realisiere ich hier eine Rechteverwaltung (zertifikatsbasiert)?
+ Wie erstelle ich hier eine vernünftige REST-API?
Am einfachsten wäre es meiner Meinung nach, wenn ich die verschiedenen Funktionen in verschiedene Unterordner packe, und diese dann mit .htaccess - Dateien schütze:
+ www/rest/doorctl/open
+ www/rest/doorctl/close
+ www/rest/doorctl/.htaccess
Nur ist das leider nicht besonders elegant, was Rechteverwaltung angeht - ganz zu Schweigen, dass ich gar nicht weiß, ob man mit .htaccess auch Client-Zertifikate verwalten kann...
Was haltet ihr davon?
PS:
Noch ein kleines Logikproblem:
Türöffner wird gedrückt => Client sendet alle 250ms das Kommando "Tür öffnen" an die Türkontrolle.
Auf der Türkontrolle läuft ein Timer, welcher die Tür für 500ms offen hält. Das Kommando "Tür öffnen" soll diesen Timer zurücksetzen.
Wie kann man das auf einem Webserver lösen? Den Timer in eine Datei schreiben/lesen tötet nur die SD-Karte...