Hallo zusammen,
ich stelle euch hier mal meine Lösung zur Steuerung von Farben / Effekten aber auch zum Ein- und Ausschalten meines Ambilights vor.
Kurze Erklärung zum prinzipiellen Aufbau:
Zwei Raspberry sind über LAN miteinander verbunden. Der erste Raspberry ist für das Ambilight zuständig, der zweite für diverse andere Aufgaben, wie HDMI CEC Steuerung über WebIf, schalten von Steckdosen, etc..
Als Fernbedienung für mein gesamtes Heimkino verwende ich eine Harmony 650.
An dem Zweiten Raspberry hab ich einen IR-Empfänger angeklemmt, den ich über die Harmony in Verbindung mit lirc und irexec steuere. Als Profil für die Harmony hab ich eine einfache 24-Button RGB-Controller Fernbedienung (APA 1616 oder vergleichbar, 5 Euro in der Bucht) genommen, damit man nicht umbedingt eine Harmony braucht.
Ich habe allerdings nicht alle Buttons belegt, sondern nur meine Favoriten der Effekte und die Standardfarben RGB+Y sowie AN und AUS.
Zuerst mal die Konfiguration der Fernbedienungscodes, /etc/lirc/lircd.conf:
begin remote
name 24Buttons_RGB_Remote.conf
bits 16
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100
header 9031 4444
one 612 1617
zero 612 509
ptrail 612
repeat 9027 2186
pre_data_bits 16
pre_data 0xF7
gap 107880
toggle_bit_mask 0x0
begin codes
LED_Power_On 0xC03F
LED_Power_Off 0x40BF
LED_Brightness_Up 0x00FF
LED_Brightness_Down 0x807F
LED_Effect_1_Fade 0xC837
LED_Effect_2_Flash 0xD02F
LED_Effect_3_Smooth 0xE817
LED_Effect_4_Strobe 0xF00F
LED_Light_1 0x20DF
LED_Light_2 0x10EF
LED_Light_3 0x30CF
LED_Light_4 0x08F7
LED_Light_5 0x28D7
LED_Light_6 0xA05F
LED_Light_7 0x906F
LED_Light_8 0xB04F
LED_Light_9 0x8877
LED_Light_10 0xA857
LED_Light_11 0x609F
LED_Light_12 0x50AF
LED_Light_13 0x708F
LED_Light_14 0x48B7
LED_Light_15 0x6897
LED_Light_16 0xE01F
end codes
end remote
Alles anzeigen
Zum Ausschalten des Ambilights führe ich per SSH auf dem ersten Raspberry ein Script zum Stoppen von Hyperion aus. SSH habe ich auf beiden Raspberries so konfiguriert, dass man sich über Zertifkate im Hintergrund einloggen kann, sonst müsste man immer ein Passwort eingeben.
Die Farben und Effekte stelle ich hingegen über hyperion-remote ein, dafür habe ich auch auf dem zweiten Raspberry ebenfalls Hyperion installiert. Autostart von Hyperion habe ich natürlich hier deaktiviert.
Konfigurationsdatei zum Ausführen der gewünschten Befehle, /etc/lirc/lircrc:
begin
button = LED_Power_On
prog = irexec
config = ssh root@IP_des_Ambilight_RPi '/Pfad/zu/euerm/Script/Script_zum_Starten.sh'
flags = quit
end
begin
button = LED_Power_Off
prog = irexec
config = ssh root@IP_des_Ambilight_RPi '/Pfad/zu/euerm/Script/Script_zum_Beenden.sh'
flags = quit
end
begin
button = LED_Brightness_Up
prog = irexec
config = hyperion-remote -a IP_des_Ambilight_RPi:19444 -x
flags = quit
end
begin
button = LED_Brightness_Down
prog = irexec
config = hyperion-remote -a IP_des_Ambilight_RPi:19444 -c black
flags = quit
end
begin
button = LED_Effect_1_Fade
prog = irexec
config = hyperion-remote -a IP_des_Ambilight_RPi:19444 -e 'Rainbow mood'
flags = quit
end
begin
button = LED_Effect_2_Flash
prog = irexec
config = hyperion-remote -a IP_des_Ambilight_RPi:19444 -e 'Knight rider'
flags = quit
end
begin
button = LED_Effect_3_Smooth
prog = irexec
config = hyperion-remote -a IP_des_Ambilight_RPi:19444 -e 'Rainbow swirl'
flags = quit
end
begin
button = LED_Effect_4_Strobe
prog = irexec
config = hyperion-remote -a IP_des_Ambilight_RPi:19444 -e 'Snake'
flags = quit
end
begin
button = LED_Light_1
prog = irexec
config = hyperion-remote -a IP_des_Ambilight_RPi:19444 -c red
flags = quit
end
begin
button = LED_Light_2
prog = irexec
config = hyperion-remote -a IP_des_Ambilight_RPi:19444 -c green
flags = quit
end
begin
button = LED_Light_3
prog = irexec
config = hyperion-remote -a IP_des_Ambilight_RPi:19444 -c blue
flags = quit
end
begin
button = LED_Light_4
prog = irexec
config = hyperion-remote -a IP_des_Ambilight_RPi:19444 -c yellow
flags = quit
end
begin
button = LED_Light_5
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
begin
button = LED_Light_6
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
begin
button = LED_Light_7
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
begin
button = LED_Light_8
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
begin
button = LED_Light_9
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
begin
button = LED_Light_10
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
begin
button = LED_Light_11
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
begin
button = LED_Light_12
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
begin
button = LED_Light_13
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
begin
button = LED_Light_14
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
begin
button = LED_Light_15
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
begin
button = LED_Light_16
prog = irexec
config = echo "RGB Fernbedienung laeuft!"
flags = quit
end
Alles anzeigen
Beim Ein- sowie Ausschalten gibt es kleine Verzögerung von ca. 2 Sekunden, da die Zertifikate geprüft werden. Das wechseln der Effekte und Farben ist (fast) verzögerungsfrei, dauert gefühlt eine viertel Sekunde.
Bin auf euer Feedback gespannt