Ambilight per IR-Fernbedienung über LAN steuern

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • 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:

    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:

    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 ;)

  • Ich schließe mich mal diesem Thread mit nützlichen Scripts an.
    Ich habe das Startscript von Hyperion angepasst, um simple zwischen zwei verschiedenen Configs hin und her zu schalten.
    Einfach den Inhalt des Codes in die Datei /etc/init.d/hyperion kopieren.
    Dann noch die zwei Pfade zu den zwei Configfiles anpassen (OPT_FILE1 und OPT_FILE2).
    Das wars.

    Nun lässt sich mit dem Befehl 'sudo /etc/init.d/hyperion switch' zwischen den zwei Configs hin und her switchen.

    Einmal editiert, zuletzt von pmmd (18. September 2014 um 19:52)

  • Vielen Dank schon mal euch beiden.

    Ich würde gerne beides miteinander verbinden.

    Ich benutze auch 2 Pi's.

    Pi A = Schaltet die Funksteckdosen über ein Webinterface aber auch über SSH und hat noch einen IR Empfänger.
    IR Signale Empfange ich auch damit.

    Pi B = Ist für das Ambilight zuständig, dieser ist mit den LEDs an einem Netzteil angeschlossen, welches wieder an einer Funksteckdose hängt.

    Somit schaltet der Pi A den Pi B ein.


    Jetzt soll die Harmony also ein IR Signal zum Pi A schicken und der aktiviert/deaktiviert die Funksteckdose, sodass Pi B an/ausgeschaltet wird.

    Ich trage die Daten für LIRC also z.B. so ein?

    /etc/lirc/lircd.conf:

    Code
    begin codes
              LED_Power_On             0xC03F
              LED_Power_Off            0x40BF
              LED_Switch		       0x00FF
          end codes
    
    
    end remote

    /etc/lirc/lircrc:



    Das hier (0xC03F) soll dann das IR Signal sein richtig?
    Wie lege ich dieses denn auf eine Harmony Taste oder Displaytaste?

    Ich hoffe ihr könnt mir ein wenig helfen.


    Vielen Dank


  • Das hier (0xC03F) soll dann das IR Signal sein richtig?


    Ja


    Wie lege ich dieses denn auf eine Harmony Taste oder Displaytaste?

    Prinzipiell hast du das alles schonmal richtig verstanden, wie man die Codes anpasst und die Dateien zu erstellen sind ;)

    Um die Befehle auf deine Harmony zu bekommen, musst du dir zuerst ein Profil von irgendeiner Fernbedienung aussuchen. Du kannst in der Datenbank von Lirc nachschauen, welche es dort schon gibt (damit du die Codes kennst und die FB nicht anlernen musst) und kannst dann das gleiche Profil für die Harmony wählen. Am Besten immer ein Profil wählen, das keine Störungen mit vorhandenen Geräten verursacht.

    Damit das Ausführen der Befehle auf dem anderen RPi im Hintergrund funktioniert, musst du ssh noch für Zertifikate einrichten und diese erstellen. Dazu müsstest du evtl. mal Google anschmeißen.

    //Edit: Hab gerade noch gesehen, dass du dich als root über ssh anmeldest und dann sudo ausführst. Das sudo ist in dem Fall überflüssig und sollte daher weggelassen werden.

    Einmal editiert, zuletzt von driftmonster (20. September 2014 um 12:40)

  • Hallo ihr,

    ich hoffe ihr könnt mir kurz bei einer Entscheidung helfen. Bisher betreibe ich mein Lightpack an meinem Enigma2 Receiver. Da ich aber gern auch andere Hdmi Geräte auslesen möchte plane ich den Erwerb eines Raspberrys mit entsprechendem Grabber. Da ich diesen jedoch nur als Ambilight nehmen möchte, suche ich eine geeignete möglichkeit diesen auch auf 3D Formate und statisches Licht (passive Beleuchtung für Party) umzustellen.

    Beim Receiver geht dies sehr leicht über das Menü, der Raspberry wird aber ja keine Anzeigemöglichkeit bei mir bekommen. Daher dachte ich auch ein IR Modul einzusetzen, nämlich den "Fernbedienungs-gesteuerter Power Controller für Raspberry Pi" von Insaneware, welcher auch den Pi ordentlich runter fährt.

    In der Anleitung steht, das man diesen controller auch als normalen IR empfänger nutzen kann. Daher wäre meine frage, wie ich Hyperion mit meiner Harmony am besten dazu bekomme die 3 Modis abzuspielen.

    In einen Beispiel oben wurde immer die Config datei geändert, bzw. ausgetauscht. Ist es nicht auch möglich bei Tastendruck einfach den v4l2 grabber zu beenden und mit neuen parametern zu starten?

    Also z.B. einmal mit "hyperion-v4l2 --mode 3DBSB" für einen 3D modus?

    Ich möchte nur vorher wissen wie praktikabel die Lösung ist, ehe ich mir eventuell um sonst die ganze Hardware kaufe.

    Vielen Dank im Vorraus =)

  • pmmd: Ja man müsste natürlich mehrere Tasten belegen mit verschiedenen Funktionen. Würde der Pi dann trotzdem immer Hyperion in der standard konfig starten auch wenn ich im vorigen Gebrauch diesen mit anderen parametern neu gestartet hatte?

    Ich finde nur den code für das Umschalten der configs ziemlich umständlich. Somal ich bedenken hätte, dass bei dem ständigen umbennenen der configs mal etwas schief geht, wenn der Pi aus irgendeinem grund mitten drin ausgeht/neustartet.

    Leider hatte ich nun gelesen, dass niemand bisher die Version mit Hdmi-Splitter an einem 3d Bluray-Player zum laufen bekommen hat, da der Analog-Konverter nur 2D kann und das umstellen auf 3D verhindert. Somit ist wohl auch der Pi keine eierlegende Wollmilchsau -.- Bei den ganzen Kosten für die Einzelteile kann man sich ja schon fast einen HTPC zusammenstellen mit Bluray laufwerk.

  • driftmonster

    Magst du mir auch sagen was für ein Profil du in der Harmony nutzt?
    Habe jetzt ein paar probiert die auch in lirc vorhanden sind, allerdings wird keine Aktion vom Pi ausgelöst.

    Mit mode2 -d /dev/lirc0 kann ich sehen, dass der Pi Signale empfängt.
    Muss ich sonst noch am Pi selbst einen Dienst starten ?


  • driftmonster

    Magst du mir auch sagen was für ein Profil du in der Harmony nutzt?
    Habe jetzt ein paar probiert die auch in lirc vorhanden sind, allerdings wird keine Aktion vom Pi ausgelöst.

    Mit mode2 -d /dev/lirc0 kann ich sehen, dass der Pi Signale empfängt.
    Muss ich sonst noch am Pi selbst einen Dienst starten ?

    APA1616, steht aber auch schon im ersten Post ;)

    Du musst irexec evtl. mal manuell starten, um zu sehen, ob es geht. Wichtig ist, dass du die von mir angebenen Pfade einhälst, Rechte der lircrc sollten 600 sein. Falls der Dienst nicht automatisch mit lircd starten sollte, editiere in der Datei /etc/init.d/lirc die Zeile (nur die erste) START_IREXEC=false in true.
    Falls das nicht helfen sollte, kannst du mal Hier vorbei schauen.

  • Ach mensch das habe ich total übersehen.

    Ich habe jetzt mal so eine kleine Fernbedienung selbst angelernt und es klappt schon einmal.
    Mit irw sehe ich, dass der Pi die Signale problemlos erkennt.
    Ich werde wohl die Befehle einfach auf die Harmony kopieren, sodass ich beide Fernbedienungen nutzen kann.

    root@raspberrypi:~# irw
    0000000000000005 00 KEY_CHANNELUP /etc/lirc/own_remote.conf
    0000000000000006 00 KEY_CHANNELDOWN /etc/lirc/own_remote.conf
    0000000000000001 00 KEY_RED /etc/lirc/own_remote.conf
    0000000000000002 00 KEY_GREEN /etc/lirc/own_remote.conf
    0000000000000003 00 KEY_BLUE /etc/lirc/own_remote.conf
    0000000000000004 00 KEY_YELLOW /etc/lirc/own_remote.conf


    *EDIT*
    Hab nun mal die ADA 1616 genommen.
    Es läuft mit der Harmony.

    pi@raspberrypi ~ $ irexec
    RGB Fernbedienung laeuft!

    Allerdings kriege ich es nicht mit hyperion-remote hin.
    Kriege nun folgende Fehlermeldung.
    Muss ich auch auf den zweiten Pi etwas von hyperion installieren?
    Eigentlich müsste der zweite Pi (192.168.2.35) ja nur den Befehl "hyperion-remote -a 192.168.2.34:19444 -c black" zum ausführen auf den Pi senden auf dem hyperion installiert ist oder?

    192.168.2.34 hier läut hyperion
    192.168.2.35 hier läuft lirc,ir,funk


    sh: 1: hyperion-remote: not found
    pi@raspberrypi ~ $ hyperion-remote -a 192.168.2.34:19444 -c black
    -bash: hyperion-remote: command not found

    Einmal editiert, zuletzt von PsychoHH (23. September 2014 um 17:31)

  • Ich kann dich nur wieder auf den ersten Post verweisen, dort steht bereits, dass auf beiden Raspberries Hyperion installiert ist ;)

    Vorteil an der Variante ist die wesentlich geringere Verzögerung. Wenn du nur den Befehl sendest, hast du jedesmal das Prüfen der Zertifikate über SSH.

  • DANKE DANKE DANKE !!!


    Ich habe mich eben mal kurz dran gesetzt und es läuft nun mit der Harmony !


    Wie kriege ich folgendes am besten hin:
    Ich schalte den Funksteckdose ein und der Pi startet.
    Dann soll das Ambilight nicht mit dem Grabber starten, sondern einfach die Farbe 255 200 000 anzeigen?

    Dann lege ich mir einfach die Tasten auf die Harmony um die Config mit Grabber zu starten/switchen.

  • Hallo pmmd,
    Dass ist eine Super Idee wenn man zwischen mehrere Hyperion Configs wechseln konnte.:bravo2:

    Ich habe es versucht aber leider nicht geschafft... und zwar bleibe ich hier hängen :wallbash:
    "Dann noch die zwei Pfade zu den zwei Configfiles anpassen (OPT_FILE1 und OPT_FILE2)"
    würdest du mir bitte ausführlicher erklären wie und wo man die Pfade anpassen muss.

    Könnte man dann auch mit dem Hyperion App dann zwischen die zwei Configs hin und her schalten?

    :danke_ATDE:

    Einmal editiert, zuletzt von BrokenSea21993 (16. Februar 2015 um 21:45)

  • Hab gerade mal durch Zufall hier vorbei geschaut, da ich das Script nun auch verwende, sehr nützlich übrigens, besten Dank pmmd ;)

    @humi: Das Anpassen der Pfade ist ja das einzige was man machen muss, du merkst dir den Pfad wo deine Konfigurationen für Hyperion liegen und schreibst sie an die Stelle der momentan vorhandenen.

    Zur Sicherheit schreib mich mal noch, dass das Script nach /etc/init.d/ gehört und (zumindest bei mir) Rechte 755 hat.

  • Danke driftmonster

    Einmal editiert, zuletzt von BrokenSea21993 (23. Februar 2015 um 20:38)

  • Ich habe es geschafft den Script zu kopieren und auch über WinSCP, nach dem ich mit über "root" angemeldet habe, die 2 Configs unter "opt/hyperion/config einzufügen.
    ich kann unter die zwei Configs auch hin und her wechseln. Aber nach dem ersten "switch"

    pi@raspberrypi ~ $ sudo /etc/init.d/hyperion switch
    Switching from /etc/hyperion.config.json to /etc/hyperion.original.config.json
    Stopping hyperiond Ok
    Starting hyperiond... Ok

    sind die LED´s eingefroren. Die Farbe wechseln nicht mehr.

    Nach erneuten "switch"

    pi@raspberrypi ~ $ sudo /etc/init.d/hyperion switch
    Switching from /etc/hyperion.original.config.json to /etc/hyperion.config.json
    Stopping hyperiond /etc/init.d/hyperion: line 68: kill: (6539) - No such process
    Ok
    Starting hyperiond... Ok

    funktioniert alles wie gewohnt.

    Kann mir bitte jemand sagen woran es legen kann?

    Einmal editiert, zuletzt von BrokenSea21993 (23. Februar 2015 um 22:36)

  • An so etwas habe ich auch gedacht und die Konfiguration unbenannt in "Config1" und "Confi2" leider gleiches Problem aufgetreten nach dem "switch".
    Einzeln Funktionieren die hyperion.config.json Dateien ohne Fehler.

  • Hätte mir eigentlich schon beim ersten Mal auffallen sollen, allerdings dir eigentlich auch, man kann ja deutlich sehen, dass die angegebenen Pfade nicht passen.
    Das Problem wird daran liegen, dass du den Pfad unter /etc/ benutzt und nicht den Pfad, wo deine Konfigurationen liegen?

    Die "Erste" Konfiguration läuft, da es in /etc/ einen symbolischen Link zur Datei in /opt/hyperion/config/ gibt, zur "Zweiten" hast du aber wahrscheinlich keinen Link erstellt. Daher nochmal; Merk dir den Pfad, wo deine Konfiguraionen liegen (Klartext:"/opt/hyperion/config/") und trage diesen anstatt "/etc/" in deinem Script ein.
    Alternativ kannst du natürlich auch einen Link in /etc/ erstellen. Davon rate ich aber ab, da man so beim Umbennen und Testen immer Probleme bekommt.

    Einmal editiert, zuletzt von driftmonster (4. März 2015 um 13:53)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!