Apps für Android programmieren leicht gemacht!

Funksteckdosen per iOS steuern

Bereits vor einiger Zeit haben Tutorials-Raspberrypi.de und Droid-Lernen.de 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.

Die eingeschweißten Android Fans werden mich wahrscheinlich gleich an den Pranger stellen, aber es ist ein nettes kleines Projekt und um euch beruhigen zu können und alle iPhone Besitzer etwas „abzuschrecken“ muss ich eine kleine Hiobsbotschaft übermitteln. Eure erstellte iOS App wird ohne bezahlte Entwicklerlizenz seitens 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 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.

Marvin

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.

Kommentar hinzufügen

*Pflichtfeld