Der Vorteil von Webanwendungen zur Heimautomatisierung besteht darin das sich diese von jedem beliebigen Gerät im Heimnetzwerk bedienen lassen und unabhängig von einer Plattform sind. Zur Ansteuerung von Funksteckdosen oder anderen Geräten die auf 433MHz arbeiten bietet sich daher eine Webanwendung an. Das Tutorial wurde auf Jessie / Stretch getestet und aktualisiert.
Inhaltsverzeichnis
Hardware
- Raspberry Pi mit USB-Netzteil und SD-Karte
- Netzwerkkabel oder Wifi Adapter
Vorbereitung
Um einen Webserver installieren und verwenden zu können muss der Raspberr Pi über eine aktive Netzwerkverbindung in eurem Heimnetz verfügen. Falls ihr das Netzwerk noch nicht eingerichtet habt hilft euch das Tutorial Wifi einrichten.
Installation des Web Servers
Im ersten Schritt müssen wir auf dem Raspberry Pi einen Webserver mit PHP einrichten. Als erstes führen wir mit „Update & Upgrade eine Aktualisierung der Repositories und der bereits installieren Software durch und installieren dann „git-core“. Danach installieren wir die Pakete für den Webserver „Apache2“ und die Programmiersprache „PHP“.
1 2 |
sudo apt-get update && sudo apt-get upgrade sudo apt-get install apache2 php |
Der Erfolg der Installation kann durch öffnen der Apache Seite in eurem Browser geprüft werden gebt hierzu die IP-Adresse des RasPi in eurem Browser ein. Zum Beispiel oder http://raspberrypi
Einrichtung des Web Servers und Steuerung der Funksteckdosen
Die Dateien aus meinem Beispiel könnt ihr hier herunterladen.
Infos
Nach der Installation können wir mit der Einrichtung des Webservers beginnen, wir benötigen zur Steuerung von Funksteckdosen oder sonstigen 433MHz Geräten eine Webseite die uns das Ansprechen des im Teil 1 erstellten Programms „send“ durch einen einfachen Klick im Browser abnimmt. Der PHP Code zum Ausschalten der Steckdose 1 mit dem Homecode 11010 lautet zum Beispiel:
1 2 3 4 |
exec("sudo /home/pi/raspberry-remote/./send 11010 1 0"); ?> |
Ich habe euch eine simple beispiel Webanwendung zusammengestellt die folgendes übernimmt:
- Weckfunktion (Anschalten definierter Steckdosen zu einem Zeitpunkt)
- Ausschalten aller Steckdosen
Der PHP Code ist sehr einfach zu verstehen und kann natürlich durch euren eigenen Code ergänzt werden. Die Datei „index.php“ enthält die Benutzerschnittstelle, die Datei „Wecker.php“ und die Datei „Ausschalten.php“ welche die eigentliche Steuerung übernehmen. Insofern ihr für euren Hauscode und die Steckdosen Nr. die selben Werte wie in meinen Beispielen verwendet habt sind keine Anpassungen notwendig, andernfalls müsst ihr in den Dateien „wecker.php“ und „Ausschalter.php“ die Codes ändern.
Hauptseite
Die Hauptseite „index.php“ enthält folgenden Code und dient als Schnittstelle für das Ausschalten und die Wecker Funktion.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
FunksteuerungWecker stellen Alles ausschalten Wecker Stunde Minuten Home |
Möchtet ihr Anstelle alles Auszuschalten eigene Buttons hinterlegen könnt ihr einfach folgende Zeile kopieren und das „OnClick“ Event und die Beschreibung durch eigene Ersetzen. Zum Beispiel „Anschalten()“ durch „Anschalten()“ und den Text in „Alles anschalten“. Hiernach muss dann nur noch eine passende Script Datei „Anschalten.php“ existieren, am besten ihr kopiert die ausschalten.php und modifiziert diese nach euren wünschen.
1 |
Alles ausschalten |
Webserver einrichten
Um die Anwendung nun über das Heimnetzwerk erreichbar zu machen müssen die einzelnen Dateien und Ordner nach „/var/www“ herunterladen . Ihr könnt euch die fertigen Dateien aus meinem Beispiel auch hier herunterladen oder via wget abholen
1 2 3 4 |
cd /var/www sudo rm -rf html sudo wget https://cdn.raspberry.tips/2014/08/Heimautomation-Beispiel-Dateien1.zip |
Dann entpacken wir den inhalt und entfernen die zip date
1 2 |
sudo unzip Heimautomation-Beispiel-Dateien1.zip sudo rm -rf Heimautomation-Beispiel-Dateien1.zip |
Hiernach müsst ihr noch die Berechtigungen auf „/var/www“ anpassen (in dieser Konfiguration sollte aus Sicherheitsgründen der RasPi nur im Heimnetz erreichbar sein):
1 2 3 |
sudo chmod g+s /var/www sudo chmod 775 /var/www sudo chown -R www-data:www-data /var/www |
Wir passen noch das Standard Verzeichnis in der Apache Webserver konfiguration an
1 |
sudo nano /etc/apache2/sites-available/000-default.conf |
Ändert die Zeile
1 |
DocumentRoot /var/www/html |
In folgendes
1 |
DocumentRoot /var/www |
Speichert mit STRG+X,Y und Enter. Wir starten den Webserver neu und können nun das Beispiel betrachten
1 |
sudo service apache2 restart |
Öffnet hierzu im Browser
- http://raspberrypi/ oder
- http://<UP-Adresse>/ via Befehl ifconfig kann die IP herausgefunden werden
Nachdem die Dateien auf den RasPi kopiert und die Rechte geändert wurden könnt ihr die Webseite über euren Rechner oder euer Smartphone einfach via http://ip-eures-raspi oder über http://raspberrypi aufrufen.
Viel Spass!