StaticFloat

Funksteckdosen per iOS App steuern – Raspberry Pi

Bereits vor einiger Zeit haben Tutorials-Raspberrypi.de und StaticFloat zusammen ein paar Artikel geschrieben, um über eine Android App und einen Raspberry Pi Steckdosen ein und ausschalten zu können. Aufgrund von sehr vielen Anfragen in den Kommentaren haben wir uns dazu entschieden noch einmal nachzuliefern und eine iOS App zu schreiben.

Einschränkungen

Ich empfinde das als ein nettes kleines Projekt. Leider muss ich allen iPhone Besitzern, um sie etwas „abschrecken“, eine Hiobsbotschaft übermitteln. Eure erstellte iOS App wird ohne bezahlte Entwicklerlizenz seits Apple nur 2 Wochen lang lauffähig sein. Keine Angst, ihr könnt es günstig halten, das iPhone alle 2 Wochen wieder an den Mac anschließen und die iOS App per Xcode neu auf das iPhone oder iPad ziehen. Eine bezahlte Entwicklerlizenz kostet derweilen glaube ich 70$ pro Jahr. Als nächste kleine Einschränkung müsst ihr unbedingt einen Mac (oder Hackintosh) besitzen, um XCode nutzen zu können.

Ich sage das nun wirklich nicht gerne, aber es gibt leider Gottes noch ein kleineres oder größeres Problem mit der iOS App. Ich weiß nicht mal ob es möglich ist -zumindest gibt es keine App dazu und auch keine Anleitung im Netz-, aber scheinbar können wir kein SSH verwenden. Das heißt in anderen Worten, dass es uns nicht zu 100% möglich sein wird die Android App 1:1 zu übernehmen. Stattdessen werden wir uns anderweitig behelfen. Dieser Workaround ist tatsächlich sogar noch etwas schneller, als die SSH Variante. Also werde wir per iOS App die Scheckdosen noch schneller ein und ausschalten können. Übrigens: Diesen Weg könnten wir in unserer Android App auch verwenden.

Der Workaround

SSH ist zwar eine der besten Varianten auf unserem Linux PC, wie dem Raspberry Pi, Befehle auszuführen, aber weiß Gott nicht die einzige. Wir werden nun folgendes tun: Wir werden einen kleinen Webserver auf unserem Pi installieren und diesem die Rechte dazu geben ein bestimmtes Skript mit Sudo Recht auszuführen. Mittels PHP und statischer IP des Pi werden wir dann über die iOS App einen „ganz normalen“ Request an unseren „Webserver“ stellen und dieser wird seinerseits dann das Skript zur Schaltung der Steckdosen ausführen.

Vorerst werdet ihr einen Webserver auf eurem Raspberry Pi installieren müssen. Dazu findet ihr eine Anleitung in einem vorigen Artikel.
Dann müsst ihr den Artikel von Tutorials-Raspberrypi.de verfolgen müssen, in dem euch erklärt wird, wie ihr das entsprechende Skript installiert, die Sendemodule anschließt und die Codes zur Schaltung herausfindet. Hier gibt es den Artikel dazu.

Habt ihr diese Vorarbeiten geleistet müssen wir den Pi einmal neustarten.
Ist er wieder „oben“, dann müssen wir PHP oder eher gesagt unserem Webserver erlauben, dass er unser Skript ausführen darf. Auf Tutorials-Raspberrypi habt ihr in der Anleitung gelesen, dass das Skript zur Ausführung von Steckdosenbefehlen in „~/Funksteckdosen-RaspberryPi“ liegen soll. Das bedeutet, dass euer Skript in eurem home-Ordner liegt. Das bedeutet aber wiederum, dass wenn euer User „pi“ heißt, dann lautet der gesamte Ordnerpfad zu eurem Skript: „/home/pi/Funksteckdosen-RaspberryPi“.

Diesen Pfad benötigen wir jetzt. – Warum? Weil wir dem Webserver aus Sicherheitsgründen nur die Sudo-Rechte in diesem einen Ordner geben wollen.

Die Sudo-Rechte erteilen wir, indem wir in der Konsole den Befehl „sudo visudo“ ausführen. Am Ende der Datei fügen wir dann ein: „www-data ALL=NOPASSWD: /home/pi/Funksteckdosen-RaspberryPi“. Natürlich mit dem angepassten Nutzernamen.

Bitte startet den Raspberry Pi noch einmal neu.

Melvin

Ich bin 23 Jahre jung und studiere zurzeit Wirtschaftsinformatik an der Georg-August-Universität in Göttingen. Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Schreibe den ersten Kommentar

*Pflichtfeld

3D Drucker – Die häufigsten Probleme

Du hast Probleme mit deinem Drucker?
Vielleicht hilft dir diese Seite, mit Problemen und Lösungen zum Druck von Modellen.

Auf geht's!