Raspberry Pi Funksteuerung

Endlich ein neues Raspberry Pi Projekt: Eine Funksteuerung für Steckdosen. Geschaltet wird dann ganz einfach über ein Web-Interface, welches auf dem Raspberry liegt. Das heißt: Jedes Internetfähige Gerät kann die Steckdosen schalten, egal ob Laptop, Tablet, Smartphone oder Internetfähige Zahnbürste :D. Und das Interface „merkt“ sich auch den aktuellen Zustand der Steckdosen. Also wenn man eine Steckdose mit dem Smartphone anschaltet, sieht man das z.B auf dem Tablet und kann sie natürlich auch dort wieder ausmachen. Außerdem ist das Interface mehr oder weniger Modular aufgebaut. So kann jeder, der sich ein bisschen mit Webservices auskennt (php, HTML, js/jQuery) das ganze beliebig erweitern oder abändern. Bevor wir anfagen muss ich noch eine kleine Warnung aussprechen. Während diesem Tutorial wird dem Apache Server ein volles Zugriffsrecht für den Pi gegeben! Daher sollte im Zusammenhang mit diesem Tutorial niemals der Raspberry von außen (also dem Internet) erreichbar gemacht werden.

Fangen wir also an. Als erstes brauchen wir einen 433MHz Sender. Den gibt es mittlerweile an fast jeder Ecke. An diesen sollte man als erstes ein 17.3cm langes Stück Draht anlöten; Und zwar an dem Antennen-Lötpunkt. Dabei ist es ziemlich egal, was für ein Kabel das ist, hauptsache es ist genau 17.3cm lang. Je genauer, desto besser der Empfang. Damit habe ich bei meinen Steckdosen eine wirklich sehr, sehr gute Reichweite erzielt: Da ich den Sender am „Smart-Mirror Raspberry“ angeschlossen habe ist mein Sender im Keller. Jedoch kann ich trotzdem im 2 Stock via Smartphone die Steckdosen schalten. Das ist eine Reichweite von gut 15-20m durch mehrere Wände und Decken! Auf dem Bild seht ihr Sender und Empfänger. Es wird für dieses Tutorial jedoch nur der Sender gebraucht (das Quadrat…)

Hat man die Antenne angelötet kann man den Sender auch schon an den Pi anschließen. und zwar so:

gpio_funk

Danach geht es auch schon an die Software. Folgende Zeile müssen wir in Putty eingeben:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install git-core
cd ~
git clone https://github.com/xkonni/raspberry-remote.git
cd raspberry-remote
make send

Ist das alles getan, kann man schon mit

sudo ~/raspberry-remote/send 11010 1 1

Steckdosen An und Ausschalten. In diesem Fall ist 11010 der Hauscode, die darauffolgende 1 steht für Steckdose 1 oder A und die letzte 1 zum Anschalten. Aus diesem Grund ist es übrigens wichtig, das ihr Steckdosen mit Dip-Schaltern kauft und keine selbstlernenden. Denn wir brauchen diese kleinen Schalter (bzw. dessen „Code“) um die Dosen steuern zu können! Also schön drauf achten, dass man die Steckdosen selbst „programmieren“ kann. Für gewöhnlich können das vorallem die günstigen Modelle… (*Yeeey*) Einen Link zu den Steckdosen die ich benutze gibts unten. Kann man also mit diesen Befehlen die Steckdosen schalten, hat man alles richtig gemacht und ist auch schon fast am Ziel!

Sollte auf dem Pi noch kein Apache2 Server mit php sein sollte man diesen als erstes einrichten. Ist das erledigt, kann man sich hier mein Interface herunterladen und nicht vergessen, die Dateien index.html (Buttonbeschriftung), Animations.js (Textbeschriftung) und sockets.php (Hauscode) anzupassen! Danach den Ordner auf den Apache Server ziehen. In meinem Fall ist das unter

/var/www/html/home_automation/

Nun muss man noch der update.php und der home.txt entsprechende Rechte geben. Das geht entweder in Filezilla mit Rechtsklick auf die jeweilige Datei (auf der Raspberry Seite) und dann bei „Dateiberechtigungen“, diese muss bei beiden Dateien auf „666“ sein. Oder man vergibt die Rechte mittels PuTTY.

chmod +x /var/www/html/home_automation/update.php
chmod +x /var/www/html/home_automation/home.txt

 Außerdem braucht der Server (bzw der www-data User) noch die Rechte, damit er die GPIOs steuern darf. Hier nochmal eine Warnung. Der folgende Schritt gibt dem Server volle Zugriffsrechte auf den Pi  (siehe Anfang).

Mittels

sudo visudo

öffnen wir die Adminrechtevergabe. Dort sollte bis jetzt ganz unten eigentlich nur ein User (Pi) eingetragen sein. Darunter schreiben wir eine neue Zeile:

www-data ALL=(ALL) NOPASSWD: ALL

Danach noch einmal rebooten. Nun kann man den Link (Bei mir z.B. 192.168.0.140/home_automation/ ) als Shortcut auf das Smartphone legen. Und das war auch schon alles. Ihr könnt jetzt ganz easy alle Steckdosen/Radios/Lampen/Standby Geräte und was es sonst noch so gibt mit einem kleinen Tastendruck auf eurem Smartphone an und aus machen.

Die ursprüngliche Seite, die mich auf diese Idee gebracht hat, und bei der ich mir auch etwas von dem Code abgeschaut habe ist hier zu finden 🙂

Natürlich könnte man das Tutorial noch ein bisschen erweitern: Mittels sudo crontab -e könnte man bestimmte (oder alle) Steckdosen Zeitsteuern. Oder man lässt sich die Aktuellen Zustände auf dem Smart Mirror anzeigen. Oder man könnte eine kleine Wecker Funktion in das Interface bauen. Oder auch verschiedene Szenen programmieren. Die Möglichkeiten sind (fast) grenzenlos 🙂

28 Kommentare zu “Raspberry Pi Funksteuerung”

  1. Hi,

    wieder ne coole Anleitung 🙂

    Ich hab nur leider das gleiche Problem wie Uwe Peter:
    Die Lampen Icons schalten sich nach kurzer Zeit wieder auf weiß, obwohl die Steckdosen anbleiben.

    Hast du da ne Idee?

    VG
    Andi

    Gefällt mir

    1. Hi andi,
      so aus dem Stehgreif kann ich dir nicht helfen. Aber ich schaue mal nach 😉
      Hm also ich habe den Code nochmals durchgesehen und konnte bis jetzt keinen Fehler finden. Das einzige was mir jetzt noch einfallen würde, ist dass evtl. die update.php die neuen Zustände der Steckdosen nicht in die home.txt schreiben kann/darf. Hast du die Rechte entsprechend (wie in der Anleitung) verändert (chmod +x)?
      Ändert sich der Inhalt der home.txt wenn du eine Steckdose schaltest?
      Wäre sehr hilfreich wenn du das testen könntest 😉

      Grüße

      Gefällt mir

      1. Moin,

        das liegt an den Rechten des „Home_Automation“ Ordners. Der wird sicherlich durch das kopieren noch auf „root“ stehen, muss aber auf www-data umgestellt werden. (also mit CHOWN).

        Dann sollte es klappen.

        Gruß
        Silvio

        Gefällt mir

  2. Hi zusammen also bei mir gehen die #kontrolllämpchen auch immer aus wenn ich die REchte geben will über: chmod +x /var/www/html/home_automation/update.php
    chmod +x /var/www/html/home_automation/home.txt dann sagt mir der Pi das hier :
    chmod: Beim Setzen der Zugriffsrechte f▒r ▒/var/www/html/home_automation/home.txt▒: Die Operation ist nicht erlaubt

    bite um hilfe der rest funktioniert einwandfrei!!!

    Gefällt mir

  3. Hi,
    mal ne Frage:
    „…dann einfach den Ordner „home_automation“ in den Apache Server ziehen. …“
    Wie geht das? Alles andere ist super erklärt, jedoch dieser eine Punkt nicht! Wäre cool, wenn du mir bzw. jmd das erklären könnte.

    Vielen Dank.

    MfG
    Stefan

    Gefällt mir

  4. Hallo Dracary
    Klasse Projekt und super Anleitung. Mir ist bei den Berechtigungen update.php und home.txt das wenn ich die Berechtigung über chmod +x setze die Berechtigung noch nicht richtig funktioniert, das Icon wechselt wieder auf Weis und keine Anzeige auf dem Spiegel. Ich setze dann nochmal die Berechtigung über Filezilla auf 666 und dann funktionierts erst. Mach ich da irgendeinen Fehler? Ich bin nicht der Linux Programmierer hab da relativ wenig Ahnung und hab alles nach deiner Anleitung hinbekommen. Man kann doch sicher die Anzahl der Steckdosen erweitern, laut Homecode und Adresse der Steckdosen müssten 5 Stück im gleichen Homecode funktionieren. Ausserdem könnte mann ja nochmal fünf mit anderem Homecode betreiben usw. Welche Dateien muß ich anpassen damit das funktioniert. Vielleicht könntest du ja mal ne kurze Anleitung posten.
    Viele Grüße Tom und nochmal Super Projekt

    Gefällt mir

  5. Hey,
    als erstes wollte ich sagen, dass du super Ideen „relativ“ leicht erklärst.
    Dennoch habe ich eine Frage zu der Funksteuerung, denn ich verwende einen Raspberry Pi 3, bei diesem Modell ist der GPIO 17 mit 3,3V belegt. Trotz langer Recherche bekomme ich einfach nicht raus, wo (also in welchen Dateien) ich den GPIO ändern kann.

    Danke.

    Gefällt mir

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Hier stelle ich meine DIY Projekte vor!

%d Bloggern gefällt das: