Webrelais
Webrelais Status: stable | |
---|---|
Beschreibung | Relais-Karte, steuerbar über eine REST-API |
Autor: | schinken |
Version | 0.8 |
PayPal |
Webrelais
Webrelais ist ein Projekt für Linux und Windows (ungetestet), mit welchem sich der Relaisbausatz K8IO per REST-API fernsteuern lässt.
Die Software läuft auf unserer Flepo, welche über einen Parallel-Port verfügt.
Software
Die Software steht samt Client-Libraries unter https://github.com/Schinken/py-webrelais zur Verfügung
Ansteuerung
HTTP-Befehl | Pfad | Beschreibung |
---|---|---|
GET | / | Simples Webinterface zur Steuerung der Relais |
POST | /ports/[0-7]? | Relais einschalten |
GET | /ports/[0-7]? | Status des Relais abfragen |
DELETE | /ports/[0-7]? | Relais ausschalten |
Wird keine Zahl übergeben, sind alle Relais von der Aktion betroffen
Verwendungszwecke
Über die Relais soll unter anderem der Türöffner oder z.B. eine Rundum-Leuchte geschalten werden.
Durch die Verwendung der REST-API muss sich niemand mehr selbst um die Ansteuerung der Hardware kümmern, sondern kann von $Programmiersprache einfach das zugehörige Relais schalten.
Belegung
Die momentane Belegung der Relaiskarte sieht wiefolgt aus:
Relais | Funktion |
---|---|
0 | Tür öffnen |
1 | Tür schliessen |
2 | Türsummer |
3 | frei |
4 | frei |
5 | frei |
6 | frei |
7 | frei |
Authentifizierung
Da in Zukunft auch sensible Sachen über das Relais geschalten werden (z.b. die Türanlage), ist die REST-API mit einer Authentifizierung abgesichert. Hierfür wird die Datei acl.py verwendet. Ein Benutzer kann hier mehreren Relais zugeteilt werden, und umgekehrt.
Die minimalkonfiguration eines Benutzers besteht aus "username" und "passwort". Des weiteren kann der User auch auf einen Host eingeschränkt werden. In der momentan Version ist hier nur eine IP-Adresse möglich - eine Hostauflösung ist geplant.
Beispiel eines Benutzerzugangs:
usr_door = {'user':'username', 'pass':'password', 'host':'127.0.0.1' }
Zuweisung eines Benutzers an ein Relais:
port_permissions[0] = [usr_door]
Zuweisung mehrerer Benutzer an ein Relais
port_permissions[2] = [usr_door, usr_schinken]
Installation
Die Software befindet sich unter https://github.com/Schinken/py-webrelais und kann per
git clone git://github.com/Schinken/py-webrelais.git
ausgecheckt werden.
Folgende Pakete werden bei Debian benötigt:
sudo apt-get install python-parallel python-flask
Des weiteren muss das Kernel-Modul "lp" entfernt und das Modul "ppdev" hinzugefügt werden:
sudo rmmod lp sudo modprobe ppdev
Um den Benutzer, unter dem das Script läuft Schreibzugriff auf /dev/parport0 zu gewähren, muss der User entweder der Gruppe "lp" hinzugefügt, oder die Rechte von /dev/parport0 geändert werden.