RPi SmartHome Control - SHC Raspberry Pi SmartHome Control

RPi SmartHome Control
1. Vorbereitung ………………………………………………………………………………………………………………… Seite 2
1.1. Was kann man mit dem RPiSmartHome Control machen?
1.2. Benötigtes Werkzeug
1.3. Empfohlenes Werkzeug
2. Aufbau der Platine für den Funksender ………………………………………………………………………… Seite 3
2.1. Benötigte Komponenten
2.2. Der Schaltplan
2.3. Die fertige Platine
3. wiringPi installieren ………………………………………………………………………………………………………. Seite 5
4. rcswitch-pi installieren ………………………………………………………………………………………………….. Seite 5
5. Webserver und PHP Installieren und einrichten ……………………………………………………………. Seite 6
5.1. Lighttpd installieren
5.2. PHP5 installieren
5.3. PHP5 in Lighttpd einrichten
6. Das RPi SmartHome Control Installieren ……………………………………………………………………….. Seite 7
6.1. Download und entpacken des Archives
6.2. Installation
6.3. Setzen der Benutzerrechte
6.4. Die sudosers Datei bearbeiten
7. Die Serverdienste einrichten (Auto Start) ……………………………………………………………………… Seite 8
7.1. Starten des Timeservers
7.2. Starten des Schaltservers
7.3. Autostart einrichten mit init.d Script
8. Erste Schritte mit dem SHC …………………………………………………………………………………………… Seite 9
8.1. Eine Funksteckdose einstellen und im SHC eintragen
8.2. Aktivitäten erstellen und schalten
8.3. Timer Funktionen einstellen
8.4. Die Mobiloberfläche
9. Linksammlung ………………………………………………………………………………………………………………. Seite 11
RPi SmartHome Control
Seite 1
RPi SmartHome Control
1. Vorbereitung
1.1. Was kann man mit dem RPiSmartHomeControl machen?
Das RPiSmartHomeControl schaltet 433MHz Funksteckdosen über ein Webinterface für PC Browser
und Mobile Endgeräte. Auch eine Zeit- oder Ereignis-gesteuerte Schaltung von Funksteckdosen ist
möglich.
1.2. Benötigtes Werkzeug


Lötkolben und Lötzinn
Seitenschneider
1.3. Empfolenes Werkzeug

Digitalmultimeter
RPi SmartHome Control
Seite 2
RPi SmartHome Control
2. Aufbau der Platine für den Funksender
2.1. Benötigte Komponenten







1x Entwicklerplatine für den Raspberry Pi
z.B.: Humble Pi oder Slice of Pi
1x 433MHz Sendemodul (3 – 12V)
1x Wiederstand 330Ω (optional für Statusanzeige)
1x LED (Farbe ist egal) (optional für Statusanzeige)
1x Batterieclip für Blockbatterien
1x Batteriehalter für 8x AA Batterie
1m Kupferdraht (Starr) z.B.: 0,14mm²
2.2. Der Schaltplan
RPi SmartHome Control
Seite 3
RPi SmartHome Control
2.3. Die fertige Platine
Hier mit der Entwicklerplatine Slice of Pi aufgebaut.
RPi SmartHome Control
Seite 4
RPi SmartHome Control
3. wiringPi installieren
Zuerst sollte das System nochmal auf den neusten Stand gebracht werden was mit folgenden 2 Befehlen
passiert:
~ $ sudo apt-get update
~ $ sudo apt-get upgrade
Als nächster Schritt muss nun GIT installiert werden:
~ $ sudo apt-get install git-core
Nach der Installation von Git kann nun das wiringPi Paket aus dem Internet geladen warden:
~ $ git clone git://git.drogon.net/wiringPi
Ist auch das erfolgreich abgeschlossen muss nun nur noch das Installationsscript ausgeführt werden:
~ $ cd wiringPi
~/wiringPi $ cd w
Nach der Installation kann der wiringPi Ordner mit folgendem Befehl wieder aus dem Home Ordner
entfernt werden:
~/wiringPi $ cd ..
~ $ rmdir --ignore-fail-on-non-empty wiringPi/
4. rcswitch-pi installieren
Nun muss noch rcswitch-pi installiert werden welches die Schaltbefehle über den Funksender an die
Funksteckdosen sendet. Ich empfehle immer solche Tools unter /opt zu installieren, daher werde ich hier
auch die Installation so beschreiben. Zudem ist das auch der Standartpfad in dem das
RPiSmartHomeControl nach dem send Befehl sucht. (wenn du rcswicht-pi in einen anderen Pfad installierst
musst du die Konfiguration des SHC anpassen, wird später noch erklärt).
Zuerst navigieren wir in den Pfad /opt, danach wird das rcswitch-pi Paket aus dem Internet geladen und
mit make kompiliert.
~ $ cd /opt
/opt $ sudo git clone https://github.com/r10r/rcswitch-pi.git
/opt $ cd rcswitch-pi
/opt/rcswitch-pi $ sudo make
Ist das erfolgreich abgeschlossen, kannst du schon einen ersten Test durchführen ob das Schalten über die
Kommandozeile funktioniert.
~ $ sudo /opt/rcswitch-pi/send 11111 1 1
Der send Befehl funktioniert nach dem Muster ./send <System Code> <Geräte ID> <Schaltbefehl>.
RPi SmartHome Control
Seite 5
RPi SmartHome Control
5. Webserver und PHP installieren und einrichten
5.1. Lighttpd installieren
Da der Apache2 Webserver selbst recht viel Leistung verbraucht, empfehle ich den Lighttpd
Webserver zu verwenden der auf dem Raspberry Pi recht schnell arbeitet. Daher beschreibe ich hier
auch nur die Installation des Lighttpd Servers. Das SHC funktioniert auch mit Apache2 oder nginx,
entsprechende Anleitungen sind z.B.: im Ubuntuusers Wiki zu finden.
Mit folgendem Befehl wird der Lighttpd Webserver installiert:
~ $ sudo apt-get install lighttpd
Nach der Installation wird der Server automatisch gestartet. Als Standarteinstellung wird /var/www
als Documentroot verwendet was wir auch beibehalten werden. Die Einstellungen können in der
Datei /etc/lighttpd/lighttpd.conf bearbeitet werden, da können auch der Port und die
Netzwerkschnittstelle eingestellt werden. Dies belassen wir aber wie schon erwähnt bei den
Standartwerten. Nach dem ändern der Konfiguration muss der Server neu gestartet werden um diese
zu übernehmen.
5.2. PHP5 installieren
Jetzt muss noch PHP5 installiert werden da das SHC in PHP geschrieben wurde. Mit folgendem Befehl
werden alle vom SHC benötigten PHP Pakete installiert:
~ $ sudo apt-get install php5 php5-cgi php5-cli php-apc
Damit wird PHP5 installiert, dazu noch das PHP5-CGI Modul welches die Schnittstelle zum Webserver
ist und mit PHP-APC wird noch ein Cache installiert der die Antwortzeiten noch etwas senkt.
5.3. PHP5 in Lighttpd einrichten
Nun muss nur noch PHP im Lighttpd Server aktiviert werden damit Lighttpd auch PHP Dateien als
Script und nicht als Text verarbeitet. Mit den folgenden 2 Befehlen wird PHP im Lighttpd Webserver
als Fastcgi Modul aktiviert:
~ $ sudo lighty-enable-mod fastcgi
~ $ sudo lighty-enable-mod fastcgi-php
Nun sind alle Vorbereitungen abgeschlossen und das SHC Kann installiert und eingerichtet werden.
RPi SmartHome Control
Seite 6
RPi SmartHome Control
6. Das RPi SmartHome Control Installieren
6.1. Download und entpacken des Archives
Mit den folgenden Befehlen wird zuerst in den Root Ordner des Webservers gewechselt, danach wird
die aktuelle Version vom SHC Server geladen und entpackt.
~ $ cd /var/www
/var/www $ sudo wget http://shc.rpi-controlcenter.de/release.zip
/var/www $ sudo unzip release.zip
/var/www $ sudo chmod 0777 –R /var/www/shc
6.2. Installation
Als nächstes muss noch die Installation durchgeführt werden, bei der alle wichtigen Einstellungen und
Daten gesammelt und gesetzt werden.
/var/www $ cd shc
/var/www/shc $ php install.php
6.3. Setzen der Benutzerrechte
Danach müssen noch die Berechtigungen richtig gesetzt werden, dies geschieht mit folgenden
Befehlen.
/var/www/shc $ sudo chown www-data:www-data –R /var/www/shc
6.4. Die sudosers Datei bearbeiten
Vor dem bearbeiten der sudosers Datei sollte unbedingt ein Backup der SD Karte gemacht werden,
sollte etwas beim bearbeiten schief gehen kann man sich aus dem System aussperren was zu einer
Neuinstallation des kompletten Systems führen kann.
Die sudosers Datei sollte unbedingt mit dem Visudo Editor bearbeitet werden da dieser eine Prüfung
der Syntax übernimmt und Fehler vermeidet.
Das Ganze ist dafür notwendig, dass man den RPi vom Webinterface aus Neustarten und
Herunterfahren kann. Auch für das Senden der Schaltbefehle werden root-rechte benötig.
Im Folgenden wird nun die sudosers Datei in Visudo:
/var/www/shc $ sudo visudo
Nun muss am Ende der Datei folgende Zeile eingefügt werden:
www-data ALL = NOPASSWD: /opt/rcswitch-pi/send, /sbin/reboot, /sbin/halt
Wenn du rcswitch-pi woanders installiert hast muss der Pfad entsprechend angepasst werden.
Wichtig: am Ende der Datei muss eine Leerzeile stehen! Nach dem Speichern mit STRG+O und einem
Neustart des Systems kann man über das Webinterface auch den RPi Neustarten und Herunterfahren.
RPi SmartHome Control
Seite 7
RPi SmartHome Control
7. Die Serverdienste einrichten (Auto Start)
7.1. Starten des Timeservers
Der Timeserver ist notwendig, wenn du die Zeitschaltfunktionen nutzen möchtest. Solltest du diese
nicht benötigen, kannst du diesen Punkt überspringen. Der Timeserver wird mit folgendem Befehl
(einmalig) gestartet:
/var/www/shc $ php index.php
7.2. Starten des Schaltservers
Der Schaltserver nimmt die Schaltbefehle entgegen und sendet diese mittels rcswitch-pi und 433MHz
Sendemodul an die Funksteckdosen. Der Schaltserver wird mit folgendem Befehl (einmalig) gestartet:
/var/www/shc $ php index.php -sw
7.3. Autostart einrichten mit init.d Script
Da beide Server nach jedem Neustart des RPi neu gestartet werden müssten, sollte man dies
Automatisieren. Dazu muss mit folgendem Befehl das Start Script in den Ordner des Superservers
verschoben werden:
/var/www/shc $ sudo mv shc.sh /etc/init.d/shcd
Danach kannst du mit dem Befehl:
/var/www/shc $ sudo service shcd start
die Dienste des SHC starten und mit dem Befehl:
/var/www/shc $ sudo service shcd stop
wieder anhalten. Dies solltest du zuerst Testen indem du den Start befehl eingibst und schaust ob die
Dienste Ordnungsgemäß laufen. Wenn alles Funktioniert wie es soll kannst du mit folgendem Befehl
den Autostart einstellen:
/var/www/shc $ sudo update-rc.d shcd defaults
Ist das ohne Fehlermeldung durchgeführt worden, starten die Dienste ab dem nächsten
Neustart automatisch.
RPi SmartHome Control
Seite 8
RPi SmartHome Control
8. Erste Schritte mit dem SHC
Wenn du alles nach der Anleitung installiert hast kannst du jetzt im Browser unter der Adresse
http://<IP-deines –Rpi/shc das Webinterface des SHC aufrufen.
Für alle im Folgenden beschriebenen Funktionen musst du dich zuerst am SHC Anmelden.
Der Anmeldebutton ist oben rechts in der Kopfzeile.
Nach dem Anmelden erscheint, soweit du dich mit einem Administrator Account angemeldet hast,
rechts Oben in der Ecke das Administrator Menü.
Über dieses Menü können alle Einstellungen am SHC vorgenommen werden. Die Administrations
Funktionen stehen nur über die normale Weboberfläche zur Verfügung (nicht in der Mobiloberfläche)
8.1. Eine Funksteckdose einstellen und im SHC eintragen
Um eine neue Funksteckdose hinzufügen zu können, musst du zuerst einen Raum erstellen. Dies
geschieht unter dem Menüpunkt „Räume Verwalten“ über den Button „Raum eintragen“. Danach
gehst du im Administrationsmenü auf „Steckdosen verwalten“, darauf hin erscheint ein leeres
Fenster mit dem Button „Steckdose eintragen“, mit einem Klick auf diesen Button könnt ihr die
Steckdose eintragen:
Ist die Steckdose erfolgreich eingetragen kann das Fenster geschlossen werden und die Steckdose
lässt sich nun im jeweiligen Reiter des Raumes Schalten.
8.2. Aktivitäten erstellen und schalten
Da man oft nicht nur eine Funksteckose schalten will sondern mehrere, können im SHC Aktivitäten
(Gruppen) erstellt werden, mit denen mehrere Funksteckdosen mit einem Schalter geschalten
werden können. Um eine Aktivität zu erstellen, gehst du im Administrationsmenü auf „Aktivitäten
verwalten“, dann erscheint wieder ein erstmal leeres Fenster mit dem Button „Aktivität erstellen“.
Mit einem Klick darauf kannst du der neuen Aktivität einen Namen geben. Ist das Speichern
erfolgreich, steht jetzt eine Aktivität in der Liste. Um jetzt eine Funksteckdose der Aktivität
hinzufügen zu können, musst du auf den Namen der Aktivität klicken (Fett und Unterstrichen).
Daraufhin öffnet sich das Menü zum hinzufügen/entfernen der einzelnen Funksteckdosen zur
RPi SmartHome Control
Seite 9
RPi SmartHome Control
Aktivität. Der gewählte Befehl wird beim aktivieren der Aktivität gesendet, beim deaktivieren das
jeweilige Gegenteil.
Aktivitäten werden auch als aktiv erkannt, wenn alle zugehörigen Funksteckdosen einzeln in den
jeweiligen Zustand geschalten werden.
8.3. Timer Funktionen einstellen
Die Timer Funktion erfüllt prinzipiell die Funktion einer recht umfangreich konfigurierbaren
Zeitschaltuhr. Es können Schaltpunkte erstellt werden, die zu bestimmten Zeiten oder Ereignissen
einen Schaltbefehl oder eine Aktivität auslösen. Die Schaltbefehle können zusätzlich noch durch
Schaltbereiche eingegrenzt werden.
Beispiel: Ein Schaltpunkt schaltet jeden Tag zum Sonnenuntergang eine Lampe im Garten ein, aber
nur vom 1. Mai bis 30. August.
Pro Schaltpunkt können auch mehrere Schaltbereiche eingestellt werden und diese somit kombiniert
werden. Damit der Schaltpunkt ausgeführt wird, müssen alle Bedingungen erfüllt sein (also alle
Schaltbereiche zutreffen und die Bedingung für den Schaltpunkt selbst).
RPi SmartHome Control
Seite 10
RPi SmartHome Control
8.4. Die Mobiloberfläche
In den Standardeinstellungen wird man mit Mobilgeräten automatisch auf die Mobiloberfläche
umgeleitet (kann in den Einstellungen deaktiviert werden).
9. Linksammlung




http://wiringpi.com/
https://github.com/r10r/rcswitch-pi
http://www.raspiprojekt.de/anleitungen/schaltungen/28-433-mhz-funksteckdosen-schalten.html
http://smarthome.rpi-controlcenter.de
RPi SmartHome Control
Seite 11