[RECALBOX] HDR und Hyperion nicht perfekt aber ein Anfang

  • Ich habe mich die letzte Woche massiv mit dem Thema beschäftigt und habe für mich erstmal eine brauchbare Lösung gefunden Hyperion mit HDR zu nutzen. Ganz unter dem Motto "sharing is caring" teile ich meine Erkenntnis mit euch. Das Tut ist für die Recalbox und setzt ein bereits funktionierendes Hyperion / Ambilight voraus. Bei Bedarf mache ich dazu ein separates Tutorial. Die Lösung sollte sich auch mit etwas Modifikation auch auf andere OS wie LibreElec anwenden lassen. Wenn Zeit ist mache ich dazu auch nochmal ein Test / Tutorial.


    Was ihr braucht:

    • Ein IR-Modul z.B. TSOP4838 (ab ~ 0,80 Euro)
    • Jumper Kabel um den Empfänger anzuschließen, Alternativ geht auch Löten
    • Einen Raspberry PI mit Recalbox und konfiguriertem Hyperion
    • Eine Fernbedienung, wenn möglich eine die Ihr nicht mehr braucht


    Idee hier ist die Verwendung von zwei verschiedenen Konfigurationsdateien, welche per Fernbedienung aktiviert werden.



    1. IR Modul


    Empfänger Modul wie den TSOP4838 wird benötigt. Angeschlossen wird das ganze so:



    Solltet ihr wie ich die PINs 1 und 6 bereits belegt haben. Zum Beispiel für eine aktiven Kühler, dann müsst ihr für die Stromzufuhr (3,3V und GND) alternative PINs belegen. Hilfe dazu bietet dieses Schema:



    2. config.txt


    Als nächstes muss die config.txt angepasst werden. Der Eintrag dtoverlay=lirc-rpi muss ggf nur auskommentiert werden. Damit aktivieren wir das IR-Modul und der PI ist in der Lage Infrarotsignale zu empfangen. Mit der Ergänzung gpio_in_pin=17 wird der GPIO festgelegt an dem das Signal eingeht. Man könnte hier auch einen anderen GPIO festlegen.

    Code
    #ggf  mount -o remount rw, /
    nano config.txt
    dtoverlay=lirc-rpi,gpio_in_pin=17
    reboot



    3. Signaltest


    Mit einer beliebigen Fernbedienung welche auf 38 kHz sendet, kann man prüfen ob am PI etwas ankommt. Dazu folgenden Befehl ausführen und beliebige Tasten auf eurer Fernbedienung drücken. Info: Die meisten gebräuchlichen Fernbedienungen für Fernseher DVD-Player usw. senden auf 38 kHz.

    Code
    mode2 -d /dev/lirc0


    Sollte euer PI was aufschnappen sieht das ganze etwa so aus:

    Code
    space 2207679
    pulse 8992
    space 4523
    pulse 519
    ...


    Mit STRG + C könnt ihr den Test beenden.



    4. Tasten anlernen


    Wenn wir wissen, dass der PI Signale bekommt, müssen wir Ihm noch beibringen diese Tasten zu erlernen. Damit wir mit diesem Input auch etwas anfangen können. Mit dem Befehl # irrecord --list-namespace könnt ihr die möglichen Tastenbezeichnungen anzeigen lassen, welche erlernt werden sollen. Für das Aktivieren der HDR-Konfig habe ich KEY_1 und für die SDR-Konfig KEY_2 verwendet. Ihr könnt aber auch andere Tastenbezeichnungen aus der Liste verwenden.

    Code
    irrecord --list-namespace


    Mit nachstehenden Befehlen können wir die Codes der Fernbedienung aufzeichnen. Erst den Dienst lirc beenden, dann die Codes aufzeichnen. Dazu den Anweisungen in der Konsole folgen.

    Code
    /etc/init.d/S25lircd stop
    irrecord -d /dev/lirc0 -f /HDR.lircd.conf


    Euer aufgezeichneter Remote Code könnte dann so aussehen:


    Nun verschieben (oder kopieren) wir noch die Datei, damit lirc diese findet und etwas damit anfangen kann und starten den Dienst neu.

    Code
    #ggf  mount -o remount rw, /recalbox/share/system/.config/lirc
    mv /HDR.lircd.conf /recalbox/share/system/.config/lirc/lircd.conf
    /etc/init.d/S25lircd restart


    Mit dem Befehl irw können wir testen ob die gelernten Tasten funktionieren.

    Code
    irw


    Der erfolgreiche Test könnte dann so aussehen:

    Code
    0000000000ff30cf 00 KEY_1 /recalbox/share/system/.config/lirc/lircd.conf
    0000000000ff18e7 00 KEY_2 /recalbox/share/system/.config/lirc/lircd.conf



    5. Befehle an die Tasten binden


    Wenn ihr irexec ohne Optionen oder Parameter ausführt, wird es nach einer Konfiguration suchen und diesen Pfad ausgeben. Bei Recalbox ist das /recalbox/share/system/.lircrc. Also lege ich diese Datei an und lege fest was beim Druck der Tasten KEY_1 und KEY_2 passieren soll.

    Code
    nano /recalbox/share/system/.lircrc


    Im Vorfeld habe ich bereits zwei Konfigurationen für Hyperion angelegt (HDR_hyperion.config.json / SDR_hyperion.config.json). Eine für HDR und eine für SDR. Beide Dateien liegen mit der aktiven Konfiguration im selben Verzeichnis. Wenn ich KEY_1 auf meiner Fernbedienung drücke soll die HDR Konfig und bei KEY_2 die SDR Konfig aktiviert werden. Dazu kopiere ich beim Tastendruck die jeweilige Datei auf den Namen hyperion.config.json und starte den Dienst neu. Mir ist bewusst, dass ich den Neustart mit restart auch umsetzen kann. So war es aber zuverlässiger.



    6. irexec als Daemon


    Damit die Befehle bei Tastendruck ausgeführt werden, muss das Programm irexec laufen. Man kann es in der Konsole starten und schonmal testen ob alles funktioniert. Aber es soll ja immer im Hintergrund ausgeführt werden. Also brauchen wir noch einen Daemon bzw Service.


    Auf der Recalbox liegen diese unter /etc/init.d. Diese werden in alphanumerischer Reihenfolge abgearbeitet. Für lirc und hyperion gibt es bereits einen Daemon. irexec soll nach den beiden gestartet werden. Ich habe mich für den Namen S85irexec enschieden.

    Code
    cd /etc
    mount -o remount rw, /
    
    
    cd /init.d
    nano S85irexec


    Inhalt der S85irexec:


    Zum Schluss noch die Dateirechte anpassen.

    Code
    chmod 755 S85irexec


    Beim nächsten Neustart sollte eure Recalbox die Hyperion Konfig per Fernbedienung umschalten können.



    TIPPS / TRICKS:


    Eine Konfiguration für HDR zu bauen ist eigentlich das Selbe wie für SDR. Man muss nur in der Lage sein die Testbilder in HDR auszugeben und auf dieser Basis dann die Konfiguration von Hyperion vornehmen, genau wie die meisten es bereits für SDR gemacht haben.
    Ich habe dazu den Amazon 4K FireTV Stick benutzt. Dieser lässt sich auf HDR einstellen, sodass sämtliche Inhalte darüber in HDR ausgegeben werden. Dann habe ich 4K-Testbilder in meine Cloud geladen und diese dann per Web im Silk-Browser des Fire-TV aufgerufen. Mit Hypercon hab ich dann die Konfiguration erstellt und als HDR_hyperion.config.json gespeichert.



    Anmerkung:


    Wenn es meine Zeit erlaubt und es gewünscht ist, werde ich noch ein Tutorial für LibreElec machen. Aber vielleicht hilft ja diese Anleitung schon dem Ein oder Anderen. Eventuell gibt es ja noch einen schöneren Weg die Konfiguration zu wechseln. Vielleicht auch komplett automatisch. Freue mich auf euer Feedback und Anregungen!



    Meine SDR_hyperion.config.json (Auszug)


    Meine HDR_hyperion.config.json (Auszug)


    Quellen:
    https://www.recalbox.com/de/diyrecalbox/
    https://tutorials-raspberrypi.…rry-pi-ir-remote-control/
    http://www.vishay.com/docs/82459/tsop48.pdf
    https://tutorials-raspberrypi.…oads/TSOP4838-180x135.png
    https://tutorials-raspberrypi.…-Steckplatine-440x500.png
    https://indibit.de/wp-content/…GPIO-Belegung-616x800.png
    http://git.openembedded.org/op…/lirc/files/lircexec.init
    http://lirc.org/html/

  • Eine kleine Ergänzung. Das IR-Modul kann laut technischen Spezifikationen auch bis zu 5,5V vertragen. Hab es daher mal ein den Pin2 angeschlossen mit 5V und somit die Empfangsreichweite deutlich erhöht.


    Die nächste Evolutionsstufe wäre natürlich Sprachsteuerung durch Alexa via HA-Bridge. Danke an jochenf für den Tipp.

  • HI du hast dir da echt viel mühe gemacht :), werde das mir mal anschauen und testen!


    Wie wäre es einen SSH Button der das ausführt auf dem Android Handy zu machen ist das nicht besser?


    Grüße
    Soliver84

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!