Lichtsteuerung per PC, Tablet & Fernbedienung mit dem Raspberry Pi

15. Jun
2017
geschrieben von Roland Meier
Raspberry Pi 4 Relais Karte Raspberry Pi 4 Relais Karte

Wer von euch kennt es, man liegt bequem auf der Couch mit der Fernbedienung und bemerkt, dass das Licht noch angeschaltet ist und im Bild stört?

Wer kennt es, es folgen minutenlange Knobelspiele wer nun aufsteht und den knapp 3m entfernten Lichttaster betätigt?

Unglaublich aber wahr, hier beschreibe ich meine Lösung dieses Problems mit Hilfe eines alten Raspberry Pi und einer 4 Kanal Relaiskarte. Die Bedienung funktioniert komfortabel entweder per Tablet oder Smartphone, welches wir i.d.R. meistens in Greifnähe haben, oder schlichtweg per Fernbedienung, welche in jeden Fall griffbereit liegt.

 

Diese Variante ist zwar aktuell bei uns noch in Betrieb, ich möchte jedoch in Kürze auf das LinkNode R4 WLAN Relais Modul wechseln, da ich hier nur einen Bruchteil der Stromaufnahme habe:
https://mytec-home.de/elektrotechnik/linknode-r4-wlan-relay-modul

 

Vorhandene Wohnzimmer Lichtsteuerung mit Siemens Logo

Anzeige

Der große Vorteil unserer vorhandenen Lichtsteuerung ist, dass bereits ein Siemens Logo die Aufgaben des Wohnzimmerlichts übernimmt.

Da ich kein Fan von langen oder hohen Schalter-/Tasterfeldern bin, sollten die Panels im Haus 2 Dosenlängen nicht überschreiten. Bereits bei der damaligen Planung war im Wohnzimmer eine Dose für den IR-Empfänger verplant, den ich aber nie umgesetzt hatte.

Insofern blieb mir noch eine Dose, welche 7 Lichtquellen schalten musste. Ohne Bus sind mir max. 4 Taster für eine Dosenhöhe bekannt, so schalte ich mit Hilfe des Logos und den 4 Tastern die 7 Lichter, dabe ist es minimal davon abhängig welche Quellen geschaltet werden, wie lange der jeweilige Taster gedrückt ist.

Ja zugegeben, dies muss man wissen, aber nach einigen Schaltvorgängen wird das einfach zur Gewohnheit.

 

vorhandene logo licht steuerung

 

Raspberry PI für die Lichtsteuerung vorbereiten

In meinem Fall hatte ich noch einen alten Raspberry Pi v1 herumliegen, welcher für das Vorhaben allemal ausreicht. Als Debain Anhänger, was stabile Serverlösungen angeht, hatte ich natürlich das Raspbian Jessie Lite Image verwendet.

Nachdem die Grundeinrichtung mit

sudo raspi-config

erledigt und das Betriebssystem auch auf den aktuellsten Stand ist, hatte ich den Apache2 Webserver mit PHP installiert:

apt-get update && apt-get install php5 apache2

Der Webserver ist anschließend online und geht auf das Wurzelverzeichnis: /var/www

 

Im nächsten Schritt hatte ich wiringPi installiert, welches mir die Ansteuerung der GPIO Ein-&Ausgänge erlaubt:

apt-get install git
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

 

Die Bedienung der Bibliothek ist sehr einfach gehalten:

Pin 4 als Ausgang schalten:
gpio -g mode 4 out
Pin 4 auf high schalten:
gpio -g mode 4 1
Pin 4 auf low schalten:
gpio -g mode 4 0
Eingänge prüfen:
gpio -g readall

 

Raspberry & Relais Modul verdrahten

Die finale Verdrahtung seht ihr im Titelbild. Hier habe ich für euch noch einen Schaltplan, beachtet aber, dass ich einen älteren Raspberry verwende. Bei neueren können sich die GPIO Pins durchaus geändert haben!

 

schaltplan lichtsteuerung

 

Ist alles korrekt verdrahtet können mit den vorherigen Befehlen auch schon die Relais angesteuert werden.

 

PHP Script für die Lichtsteuerung

Damit die Relais auch per LAN angesteuert werden können, habe ich ein kleines PHP Script geschrieben. Ihr könnt es einfach hier herunterladen und als PHP Datei unter /var/www/html/php-gpio-script.php ablegen.

Kurze Erklärung zu den Codezeilen. Zu Beginn definiere ich per PHP die Ausgangspins und setze sie auf high, damit die Relais abgeschaltet sind.

Anschließend beginnt gewöhnlicher HTML Code wo ich z.B. die jQuery Bibliothek einlade und dann über ein HTML Formular die Buttons erstelle.

php skript html formularDiese schalten für die eingestellte Zeit das Relais, was quasi einem Tastendruck entspricht.

Rechts die einfache Anzeige im Browser, wenn die IP Adresse des Raspberry Pi angesteuert wird.
Bitte hier darauf achten, dass ohne Dateiangabe eine index.php aufgerufen wird. Nennt ihr das Skript wie ich php-gpio-script.php muss dies mit angehängt werden, außer ihr benennt die Datei in index.php um.

 

KODI MediaCenter Aktionsskripte erstellen

Wie die URL unseres PHP Skripts zeigt, können wir also mit folgendem Link von sämtlichen Geräten im Netzwerk das Licht ein-/ausschalten.

http://RASPBERRY-IP-ADRESSE/php-gpio-script.php?Sekunden=0.5&Licht1=Licht+1

 

Im KODI kann für jedes Licht ein eigenes Bash-Skript hinterlegt werden. Außerdem muss der Dienst CURL installiert sein, was in meinem LibreElec bereits der Fall war. Bei Kodibuntu oder anderen Linux Systemen könnte CURL wie folgt installiert werden:

apt-get install curl

Das Skript kann dann z.B. unter /storage/scripts/licht1.sh mit folgendem Inhalt abgelegt werden:

#!/bin/sh

curl "http://RASPBERRY-IP-ADRESSE/php-gpio-script.php?Sekunden=0.5&Licht1=Licht+1"
kodi-send -a "Notification(Licht 1, wurde geschaltet, 5)"

Die letzte Zeile sendet nur noch einen Hinweis, welcher auch im Fernsehbild angezeigt wird.

Für die anderen Lichter & Aktionen hatte ich das Selbe gemacht.

 

Hier noch das Skript um das NAS per Wake On Lan aufzuwecken:

#!/bin/sh
# this script pings a NAS and if not available wake up

mac="D0:50:99:12:B3:F2"

ping sdev-nas-omv -c 2 > /dev/null

if [ $? -eq 0 ]
then
echo "NAS bereits online!"
kodi-send -a "Notification(NAS, bereits online!, 5)"
else
echo "NAS wird aufgeweckt. Bitte warten..."
ether-wake $mac
kodi-send -a "Notification(NAS, wird aufgeweckt. Bitte warten..., 5)"
fi

 

Keymaps in KODI einrichten und mit den Skripten verbinden

Nun müssen im KODI auch noch die Tasten zugewiesen werden. Dazu gibt es ein nützliches Keymap Addon, mit welchem ich irgendwelche Befehle, welche ich normal nicht benötige, auf die Tasten A, V, B und Y legte.

Sobald die Keymap abgespeichert wird, sind in der Datei ~/.kodi/userdata/keymaps/gen.xml am Ende die neuen Zuweisungen zu sehen:

<key id="61506">
system.exec(/storage/scripts/licht2.sh)
</key>

Die letzten 4 Key Einträge mit deren IDs sind die jeweiligen Tasten. Innerhalb der Key Einträge steht die jeweilige Aktion, welche ihr gewählt hattet. Dies kann wie hier einfach in den gewünschten Exec Befehl auf das Bash Skript geändert werden.

Nachdem die Datei angepasst wurde, war noch ein Neustart nötig, anschließend funktionierten die Tasten der Tastatur auch schon wie im unteren Video zu sehen.

 

KODI Tasten dem Flirc IR Empfänger und der Harmony Fernbedienung zuweisen

Anzeige

Zuletzt müssen nun die Tasten auch noch mit der Fernbedienung verheiratet werden. Als Infrarot-Empfänger habe ich schon seit Jahren den Flirc, der einfach nett zu Programmieren ist und absolut stabil und zuverlässig seine Arbeit erledigt.

Leider gibt es für die Logitech Harmony 950 keinen "MCE Mediaplayer" mehr, welcher mir quasi die vollständige Tastatur zur Verfügung stellte. Ich musste bei der Einrichtung auf den "Plex Media Player" ausweichen, welcher für mich immer noch genügend Tasten & Befehle beinhaltet. Vieles habe ich über die F-Tasten der normalen Tastatur geregelt, bitte also in der folgenden Tabelle nicht wundern, weshalb ich die Mute-Funktion der Fernbedienung auf ein Licht lege. Bei mir geht die richtige Mute Taste auf F8 und ist somit natürlich steuerbar.

 

Hier also noch meine Tabelle mit den Zuweisungen für die 4 neuen Aktionen:

Aktion Harmony Funktion & Taste Flirc  KODI Keymap
Licht 3 Sleep (Taste 3 Punkte) A A
Licht 1 Aspect (Taste 1 Punkt) V V
Licht 2 Mute (Taste 2 Punkte) B B
NAS starten Stop (Taste 4 Punkte) Y Y

 

Die Wohnzimmer Lichtsteuerung mit dem Raspberry und der IR-Fernbedienung

Anzeige

Neben der Steuerung per MediaCenter Tastatur und natürlich jeglichen IP Geräten im Haus, kann ich heute auch mit unserer Logitech Harmony 950 Fernbedienung bequem das Licht aus- und einschalten.

Dabei habe ich die 3 häufigsten Lichtquellen auf die unteren Punkte-Tasten zw. Plus und Minus gelegt.

Die 4-Punkte-Taste startet auf Druck per Wake-On-Lan unser NAS, denn dieses läuft nicht rund um die Uhr sondern eben nur wenn es auch gewünscht und benötigt wird.

 

 

 

Hier ein Video in welchem ich mit der MediaCenter Tastatur die Lichter ansteuere. In dem Fall ist das MediaCenter also die Zentrale, welche die Befehle egal ob per Bluetooth Tastatur oder IR Fernbedienung annimmt und per LAN an den Raspberry schickt.

 

Hier noch ein kurzes Video das hier gut passt, die erstellte "Fernsehn-Starten" Aktion auf der Fernbedienung, welche mir mit einem Druck die Soundanlage auf den optischen Kanal einschaltet, das MediaCenter sowie den Fernsehr auf HDMI2. Abschalten geht ebenfalls mit der Taste Off.

 

Gelesen 13676 mal Letzte Änderung am Mittwoch, 05 Dezember 2018
Artikel bewerten
(8 Stimmen)

1 Kommentar

  • Heinz Ertl 24. Aug 2021
    gepostet von Heinz Ertl

    Hallo,
    durch Zufall bin ich auf Ihre Seite gestoßen und hätte eine paar Fragen.
    Ich bin gerade im umbauen meines Garten und möchte drei unterschiedliche Beleuchtungssteuerungen
    installieren, mein Vorhaben wäre mit einem Raspberry Pi gewesen.
    Jedoch bei Stromausfall und dem neu Booten nicht so einfach (ev. Datenverlust).
    Jetzt habe ich gesehen das es eine LinkNode R4 Modul mit einem kleinen WLAN ESP6288 gibt und 4 Relais Ausgang.

    Das ist eigentlich eine tolle und vor allem eine Stabile Lösung.

    Meine Fragen sind:
    Kann ich mit diesem Modul über W-Lan mit einer Handy App die Lichtsteuerung durchführen.
    Die Ansteuerung (Relais) müssten den Strom von 220V durchschalten (so wie ich das lese).
    Kann ich das Modul meinem PC Programmieren oder Brauche ich dazu ein Spezielles Kabel.

    Bitte um Hilfe - Danke schonmal

    LG
    Heinz

Bitte anmelden, um einen Kommentar zu posten
Anzeige

Anzeige

123RF.com - For all your creative needs!

Kalender

« November 2024 »
Mo Di Mi Do Fr Sa So
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

Newsletter

Euch interessieren meine Themen hier? Dann tragt euch einfach in den Newsletter ein und ihr werden bei neuen Beiträgen informiert.

Anzeige