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
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.
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!
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.
Diese 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
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
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.