Startseite: Multimedia Blog > Smart Home > Licht per Smartphone steuern – Einfach und schnell mit einem Raspberry Pi

Licht per Smartphone steuern – Einfach und schnell mit einem Raspberry Pi

Funksteckdosen über Smartphone oder Tablet steuern. Licht ein- und ausschalten mit einem Smartphone. Smart Home Lichtsteuerung mit dem Raspberry Pi. Einfache Installation und Einrichtung von PiLight auf einem Raspberry Pi 3.

Funksteckdosen über Smartphone steuern

Normale Funksteckdosen arbeiten auf einer Frequenz von 433 MHz. Diese lassen sich mit der dazugehörigen Fernbedienung steuern. Das ist sehr praktisch, denn das Einschalten der gewünschten Beleuchtung ist bequemer, als wenn man zu jeder einzelnen Lampe laufen muss um diese einzuschalten. Drei Funksteckdosen gibt es im Handel zwischen 15 und 20 Euro.

In unserem Haushalt habe ich sechs Funksteckdosen verbaut. Um diese sechs Funksteckdosen zu steuern, benötige ich zwei Fernbedienungen. Das hat mich etwas gestört, da ich jedes Mal überlegen musste, auf welcher Taste welche Lampe angeschlossen ist. Oft habe ich fast alle Tasten durchprobiert, um die von mir gewünschte Lichtquelle zu aktivieren. Zufriedenstellend war diese Lösung für mich nicht. Das Problem konnte ich jedoch sehr schnell und einfach lösen. Ich kann meine Funksteckdosen mit einem Raspberry Pi über mein Smartphone, Tablet oder PC steuern. Für die Einrichtung und Installation sind keine großen Programmierkenntnisse erforderlich.

Raspberry Pi Set

Raspberry Pi Set

Der Vorteil dieser Installation ist, dass ich nun meine Funksteckdosen mit meinen Smartphone steuern kann. Das Suchen der richtigen Taste auf der Fernbedienung entfällt. Es liegen nicht auch noch Fernbedienungen für das Licht herum. Das Einschalten des Lichtes funktioniert auch von unterwegs. Die Steuerung lässt sich von jedem beliebigen Smartphone, Tablet oder PC anwenden. Es muss keine App installiert werden. Es wird nur ein Internet Browser benötigt.

Sollen die Funksteckdosen über den Raspberry Pi mit einem Smartphone steuern werden, ist etwas „Bastelarbeit“ notwendig. Die Kosten jedoch sind geringer als bei anderen Lösungen. Möchten Sie ein Plug and Play Homematic System, ist der Raspberry Pi nicht die beste Lösung. Am Anfang ist etwas Konfigurationsarbeit notwendig. Das Einbinden weiterer Module gestaltet sich dann leichter.

Was wird benötigt?

Damit Sie die Funksteckdosen über Ihr Smartphone steuern können, benötigen Sie einen Raspberry Pi (auch andere Modelle möglich), einen Empfänger und einen Sender. Ich habe mich für einen Raspberry Pi entschieden, da dieser sehr preiswert ist und eine Vielzahl solcher Projekte unterstützt. Das Betriebssystem und die Software für den Raspberry Pi sind kostenfrei, da es sich um OpenSource Produkte handelt.

Raspberry Pi Netzteil

Raspberry Pi Netzteil

Raspberry Pi Gehäuse

Raspberry Pi Gehäuse

Raspberry Pi 3 Model B

Raspberry Pi 3 Model B

Raspberry Gehäuse GPIO Zugang

Raspberry Gehäuse GPIO Zugang

Den Empfänger benötigen Sie, um die Funksignale der Steckdosen einzufangen, damit diese durch den Raspberry Pi verarbeitet werden können. Mit dem Sender werden die Funksteckdosen angesteuert. Auch der Sender wird mit dem Raspberry Pi verbunden. Bei den Funksteckdosen habe ich mich für Brennenstuhl entschieden. Diese sind mit der eingesetzten Software kompatibel und relativ preisgünstig.

Sende- und Empfangsmodul

Sende- und Empfangsmodul

Brennenstuhl Funksteckdose

Brennenstuhl Funksteckdose

Einkaufsliste

  1. Raspberry Pi 3 Model B Starter Kit
  2. Stecker für Sender und Empfänger
  3. Sende- und Empfangsmodul
  4. MicroSD Karte
  5. Funksteckdosen
  6. Antennen

Betriebssystem auf Raspberry Pi installieren

Zuerst müssen Sie auf dem Raspberry Pi ein Betriebssystem installieren. Ich habe mich für RASPBIAN JESSIE (basiert auf Debian Jessie) entschieden. Dieses System arbeitet sehr Ressourcen schonend und wurde für den Raspberry Pi entwickelt. Die Installation ist sehr einfach. Sie laden das Image RASPBIAN JESSIE runter und installieren es auf der MicroSD Karte. Das Image kann direkt auf der MicroSD mit dem Win32DiskImager installiert werden. Den DiskImager müssen Sie als Administrator starten, damit die Daten auf die MicroSD Karte geschrieben werden können. Sie wählen die Image Datei aus und geben das Laufwerk der MicroSD Karte an. Das Betriebssystem wird nun automatisch auf der SD Karte installiert.

Nach der Installation können Sie die MicroSD Karte direkt in den Raspberry Pi stecken und das System startet automatisch.

PiLight auf Raspberry Pi installieren

Nach erfolgreicher Installation von RASBIAN können Sie die Installation von PiLight vornehmen. Mit PiLight werden die Funksteckdosen angesteuert. Die Steuerung erfolgt über einen Internet Browser. Eine App wird dafür nicht benötigt.

Pilight kann über APT installiert werden. Dazu benötigen Sie nur das passende Repository. Die Quelle muss in der sources.list hinzugefügt werden. Dazu verwende ich den vim Editor.

vim Editor installieren:

sudo apt-get install vim

sources.list editieren und Quelle für pilight hinzufügen:

sudo vim /etc/apt/sources.list

Drücken Sie die Taste “i”, um die Datei zu editieren. Am Ende fügen Sie folgende Zeile hinzu.

deb http://apt.pilight.org/ stable main

Drücken Sie jetzt die “ESC” Taste und speichern die Datei mit „:wq!“.

Damit Sie die Quelle von pilight verwenden können, benötigen Sie noch einen Schlüssel. Dieser Schlüssel prüft die heruntergeladenen Pakete.

sudo wget -O – http://apt.pilight.org/pilight.key | sudo apt-key add –

Es schadet nicht, wenn Sie vorher die Pakete aktualisieren.

sudo apt-get -y update

Jetzt können Sie pilight mit folgendem Befehl installieren.

sudo apt-get -y install pilight

Pilight ist jetzt vollständig auf Ihrem Raspberry Pi installiert. Nun können Sie damit beginnen, den Raspberry Pi für die Funksteuerung einzurichten.

Empfänger am Raspberry Pi anschließen

Damit der Raspberry Pi die Steuerung der Funksteckdosen übernehmen kann, müssen die Funksignale der Steckdosen abgegriffen und im Raspberry Pi verarbeitet werden. Dazu schließen wir den Empfänger am Raspberry Pi an. Ich habe den Empfänger am 3.3V Anschluss angeschlossen, weil über die 5V Schiene vom GPIO Schäden am Empfänger entstehen könnten.

VCC (Strom) an PIN 1

Data an PIN 12

GND an PIN 6

Empfänger

Empfänger

Sender am Raspberry Pi anschließen

Der Sender wird benötigt, damit wir die Funksteckdosen ansteuern (schalten) können. Für die Stromversorgung nutzen wir den zweiten 3.3V Anschluss.

VCC (Strom) an PIN 17

Data an PIN 11

GND an PIN 9

Sender

Sender

Raspberry Pi Pinbelegung

Funksignale einfangen

Wenn Sie den Empfänger richtig angeschlossen haben, können Sie die Funksignale der Steckdosen einfangen. Dazu richten Sie die Funksteckdosen nach Anleitung ein. Die Funksteckdosen müssen zuerst über die mitgelieferte Fernbedienung funktionieren. Wenn alle Funksteckdosen richtig eingerichtet sind, können Sie die Funksignale mit dem Raspberry Pi empfangen.

Den Pilight Service starten Sie mit:

sudo service pilight start

Um zu sehen, welche Signale am Pilight empfangen werden, müssen Sie folgenden Befehl eingeben:

pilight-receive

WICHTIG: Da mein Empfänger noch keine Antenne hat, muss ich die Fernbedienung der Funksteckdosen direkt vor dem Empfänger halten und eine Steckdose einschalten. Auf dem Bildschirm erscheinen die Daten der entsprechenden Funksteckdose.

{
        "message": {
                "systemcode": 31,
                "unitcode": 4,
                "state": "on"
        },
        "origin": "receiver",
        "protocol": "heitech",
        "uuid": "0000-b8-27-eb-e218a3",
        "repeats": 1
}
{
        "message": {
                "id": 7,
                "state": "on"
        },
        "origin": "receiver",
        "protocol": "ehome",
        "uuid": "0000-b8-27-eb-e218a3",
        "repeats": 1
}
{
        "message": {
                "systemcode": 31,
                "unitcode": 4,
                "state": "on"
        },
        "origin": "receiver",
        "protocol": "elro_800_switch",
        "uuid": "0000-b8-27-eb-e218a3",
        "repeats": 1
}
{
        "message": {
                "unitcode": 715775,
                "state": "closed"
        },
        "origin": "receiver",
        "protocol": "ev1527",
        "uuid": "0000-b8-27-eb-e218a3",
        "repeats": 1
}

 

Wenn bei Ihnen nichts angezeigt wird, sollten Sie nochmal die Verkabelung prüfen oder die Fernbedienung näher an den Empfänger halten. Die angezeigten Daten habe ich mir in eine TXT Datei kopiert. Jetzt kann ich probieren, welche Werte für meine Funksteckdose zuständig sind.

Funksteckdose über Raspberry Pi einschalten

Um die Brennenstuhl Funksteckdose einschalten zu können, benötigen wir das Protokoll, den Systemcode und den Unitcode. Bei meiner Funksteckdose habe ich folgende Werte erhalten:

protocol: elro_800_switch

systemcode: 30

unitcode: 2

Mit diesen Daten können Sie versuchen die Funksteckdose zu schalten. Geben Sie dazu folgenden Befehl ein:

pilight-send –p elro_800_switch –s 30 –u 4 –on

Die Funksteckdose sollte jetzt eingeschaltet sein. Wenn das funktioniert hat, können Sie die restlichen Funksteckdosen auf die gleiche Art einrichten. Ich habe mir die Daten der einzelnen Steckdosen in TXT Dateien gespeichert. Sie werden schnell ein Muster erkennen. Die Einrichtung weiterer Funksteckdosen ist somit schnell und einfach erledigt. Zum Schluss muss Pilight noch konfiguriert werden.

Pilight konfigurieren

Damit Sie alles Funksteckdosen über ein Smartphone oder den Computer steuern können, müssen die Daten der Steckdosen in der config Datei von Pilight eingetragen werden. Die Datei finden Sie unter /etc/pilight/config.json. Bevor Sie die Datei bearbeiten, muss der Pilight Service gestoppt werden, da in der config Datei die Zustände der Geräte im laufenden Betrieb hinterlegt sind und somit die Datei ständig überschrieben wird.

Pilight Service stoppen.

sudo service pilight stop

Jetzt können Sie die config.json Datei bearbeiten. Ich verwende dafür wieder den vim Editor.

sudo vim /etc/pilight/config.json

Meine config.json:

{
  "devices": {
    "LED-Schlauch": {
      "protocol": [ "elro_800_switch" ],
      "id": [{
        "systemcode": 31,
        "unitcode": 2
      }],
      "state": "on"
    },
    "Lichterkette": {
      "protocol": [ "elro_800_switch" ],
      "id": [{
        "systemcode": 31,
        "unitcode": 1
      }],
      "state": "off"
    },
    "Flur": {
      "protocol": [ "elro_800_switch" ],
      "id": [{
        "systemcode": 31,
        "unitcode": 4
      }],
      "state": "on"
    },
    "WZ-Stehlampe": {
      "protocol": [ "elro_800_switch" ],
      "id": [{
        "systemcode": 30,
        "unitcode": 1
      }],
      "state": "off"
    },
    "Arbeitszimmer": {
      "protocol": [ "elro_800_switch" ],
      "id": [{
        "systemcode": 30,
        "unitcode": 2
      }],
      "state": "on"
    },
    "Kueche": {
      "protocol": [ "elro_800_switch" ],
      "id": [{
        "systemcode": 30,
        "unitcode": 4
      }],
      "state": "on"
    },
    "MASTER": {
      "protocol": [ "elro_800_switch" ],
      "id": [{
        "systemcode": 30,
        "unitcode": 10
      }],
      "state": "off"
    }
  },
  "rules": {
    "Alles_einschalten": {
      "rule": "IF MASTER.state IS on THEN switch DEVICE WZ-Stehlampe AND LED-Schlauch AND Lichterkette AND Flur AND Arbeitszimmer AND Kueche TO on",
      "active": 1
    },
    "Alles_ausschalten": {
      "rule": "IF MASTER.state IS off THEN switch DEVICE WZ-Stehlampe AND LED-Schlauch AND Lichterkette AND Flur AND Arbeitszimmer AND Kueche TO off",
      "active": 1
    }
  },
  "gui": {
    "LED-Schlauch": {
      "name": "LED-Schlauch",
      "group": [ "Beleuchtung" ],
      "media": [ "all" ]
    },
    "Lichterkette": {
      "name": "Lichterkette",
      "group": [ "Beleuchtung" ],
      "media": [ "all" ]
    },
    "Flur": {
      "name": "Flur",
      "group": [ "Beleuchtung" ],
      "media": [ "all" ]
    },
    "WZ-Stehlampe": {
      "name": "WZ-Stehlampe",
      "group": [ "Beleuchtung" ],
      "media": [ "all" ]
    },
    "Arbeitszimmer": {
      "name": "Arbeitszimmer",
      "group": [ "Beleuchtung" ],
      "media": [ "all" ]
    },
    "Kueche": {
      "name": "Kueche",
      "group": [ "Beleuchtung" ],
      "media": [ "all" ]
    },
    "MASTER": {
      "name": "MASTER",
      "group": [ "Beleuchtung" ],
      "media": [ "all" ]
    }
  },
  "settings": {
    "log-level": 6,
    "pid-file": "/var/run/pilight.pid",
    "log-file": "/var/log/pilight.log",
    "webserver-enable": 1,
    "webserver-root": "/usr/local/share/pilight/",
    "webserver-http-port": 80,
    "webserver-cache": 1
  },
  "hardware": {
    "433gpio": {
      "sender": 0,
      "receiver": 1
    }
  },
  "registry": {
    "pilight": {
      "firmware": {
        "version": 64511,
        "lpf": 654700,
        "hpf": 573430
      },
      "version": {
        "current": "7.0"
      }
    }
  }
}

 

Den Webserver Port der Anwendung habe ich auf Port 80 geändert. Somit kann ich die Weboberfläche direkt durch die Eingabe der IP erreichen. In der Sektion „devices“ tragen Sie die Daten der einzelnen Funksteckdosen ein. Die Sektion „gui“ ist für die Weboberfläche verantwortlich. Ich stelle Ihnen als Beispiel meine config Datei zur Verfügung. Sie müssen die entsprechenden Werte (durch Ihre) ersetzen.  Wenn Sie die config Datei angepasst haben, können Sie den Pilight Service wieder starten.

sudo service pilight start

So sieht die Weboberfläche nach erfolgreicher Konfiguration aus.

PiLight Webgui

PiLight Webgui

Fehlerquellen

Der Empfang vom Sender und Empfänger ist ohne Antenne sehr gering. Dadurch konnte ich am Anfang keine Signale empfangen oder senden. Das Problem habe ich mit einem Klingeldraht gelöst. Diesen können Sie einfach an den Antennenausgang vom Sender oder Empfänger anschließen. Für die ersten Tests habe ich die Antenne nicht angelötet. Für zwei oder drei Euro können Sie auch eine Antenne kaufen.

Ein Fehler in der config Datei kann dazu führen, dass die Weboberfläche nicht angezeigt wird. Überprüfen Sie in diesem Fall genau die Konfigurationsdatei.



2 Kommentare

  1. Schönen guten Tag.
    Erst einmal danke für das super Tutorial! Leider Empfange ich keine Signale , sobald ich „pilight-receive“ eingebe. Der Service läuft ohne Fehler. An meiner Hardware & Verkabelung kann es nicht liegen, da ich auf meiner alten Backup img. Datei alles ohne Probleme ausführen kann. Woran könnte das liegen?

    Ganz liebe Grüße

    • Hallo Tobias,

      du müsstest ein bisschen mehr von deiner Konfiguration berichten. Ist die Antenne zum Empfangen der Signale richtige angeschlossen? Bei mir war es so, dass ich zum Empfangen der Signale die Fernbedienung richtig dicht an den Empfänger halten musste. Sonst ist da auch nichts angekommen. Beim Senden der Signale auf die Funksteckdosen sieht das anders aus. Da reicht der Funkempfang locker 10 Meter und durchdringt eine Wand.

      Beste Grüße

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.