Raspberry Pi Heimautomation mit Webinterface und Smartphone – Teil 2

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

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“.

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.

Webinterface

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:

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.

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.

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

Dann entpacken wir den inhalt und entfernen die zip date

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):

Wir passen noch das Standard Verzeichnis in der Apache Webserver konfiguration an

Ändert die Zeile

In folgendes

Speichert mit STRG+X,Y und Enter. Wir starten den Webserver neu und können nun das Beispiel betrachten

Öffnet hierzu im Browser

  • http://raspberrypi/                  oder
  • http://<UP-Adresse>/               via Befehl ifconfig kann die IP herausgefunden werden

beispiel webserver

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!