OpenELEC mit automatisierter Ambilight Quellenumschaltung(RPi1/RPi2 04.04.15)

  • Hallo liebe Gemeinde!


    Wer von Euch sein Ambilight über einen Videograbber befeuert und auch gerne seine Netzwerkstreams daran anbinden möchte, lese bitte weiter. :)


    Meine angepasste OpenELEC Version dient gleichzeitig als Mediacenter und steuert zusätzlich noch das Ambilight von Quellen, die über den Videograbber zugeführt werden sowie das Mediacenter(hiess früher xbmc, nun kodi) ansich.
    Das alles funktioniert automatisch. Soll heissen, schaltet man z.B. auf eine Quelle, die am Grabber angeschlossen ist wird diese von hyperion benutzt
    und das Ambilight passt sich dementsprechend an. Schaltet man wieder zurück zum Mediacenter bekommt hyperion diesen als Quelle.
    Das alles funktioniert mit der ganz normalen TV-Fernbedienung.
    Auch ist es möglich zusätzliche LED-Devices anzuschliessen. Wie in meinem Fall, einmal LED-Streifen hinterm TV und zwei Philips Hue LED-Lampen verteilt im Raum.


    Die Ersteinrichtung könnte etwas frickelig werden, deshalb habe ich versucht die Installation ein wenig zu automatisieren.
    Man muss nur darauf achten das pro Quelle jeweils eine separate hyperion.config erstellt werden muß.
    Im Normalfall sind das genau zwei Konfigurationen. Einmal für den Grabber(analog) und einmal für das Mediacenter(digital), da der Grabber von analog nach digital wandelt sind die Gammawerte für die hyperion Konfiguration dementsprechend anders. Das ist dann auch der Grund weshalb man für hyperion aktuell eben mehrere Konfigurationen benötigt.


    Wer boblight/enigmalight als zweite Quelle benutzen will braucht nur eine hyperion Konfiguration, weil boblight die Infos auch in rein digitaler Form an den hyperion Server schickt. Mein switcher Script schaltet in diesem Fall boblight via Netzwerk ein und aus, je nachdem welche Quelle gerade aktiv ist.


    Installationsanleitung


    OpenELEC-6.x.x


    Folgende Anpassungen habe ich gemacht:


    I. Vorbereitungen:


    II. Wieviele Ambilight Devices sollen benutzt werden?
    Ein Ambilight(für die meisten Benutzer)


    oder


    Mehrere Ambilights


    III. Abschliessende Schritte


    IV. Optionale Schritte
    Manuelles ein- und ausschalten des Ambilights


    Animierter Splash Screen beim Starten des Systems


    Alternative Splash Screen Animation


    Boblight statt des Videograbbers als Quelle benutzten(Sat/Kabel Receiver mit Enigma2)


    shutdown.sh Script


    ===============


    Wenn es auf Anhieb nicht funktionieren sollte, benötige ich unbedingt Logfiles von Deinem System!
    Dazu folgendes in der shell absetzen:

    Code
    createlog


    Jetzt wurden alle relevanten Dateien gesammelt und in ein Archiv gepackt, welches man unter /storage/logfiles findet. Dieses Logfilearchiv bitte an den Beitrag anhängen.


    Updates für OpenELEC/Addon/Installer (Für Benutzer, die obige Anleitung bereits abgearbeitet haben):


    ===============


    OpenELEC Image vom 04.04.2015


    Hyperion Addon vom 04.04.2015


    millhouse Build #407 vom 08.04.2015(nur zum testen gedacht!)


    Viel Spass!


    PS: Da dieses Projekt immer umfangreicher wird kann sich hier und da auch mal ein Fehler einschleichen. Sei es bei der Software oder der Anleitung.
    Bitte meldet mir solche Fehler umgehend, damit ich die schnellstmöglich beseitigen kann.



    .bismarck


    Changelog:

  • Definitiv^^
    Fände ich wirklich super wenn du das machen würdest^^
    Kannst du noch etwas zu dem System selbst sagen? Läuft es stabil, hast du sonst irgendwelche Fehler entdeckt, und wie ist die Auslastung?
    Aber finde ich wirklich unglaublich cool, und ich würde mich über eine Anleitung freuen^^

  • OpenELEC ist ein readonly System. Es gibt natürlich auch einen User Ordner(storage) indem all Deine Einstellungen gespeichert werden. Läuft sehr stabil. Beim starten lacht Dich nur der xbmc an. Die Auslastung ist dementsprechend hoch. Im Vergleich zum raspian startet das System deutlich schneller. Selbst mit hyperion + grabber ist das System aber gut zu bedienen. Den RPi kann man ja immer noch hochtakten, wenn es einem zu hackelig wird ;)


    Zumindest das OE 3.2.4 kompilat läuft super mit dem Grabber zusammen. Einzig die CEC Implemenation ist teilweise etwas buggy. Deshalb wollte ich auch die aktuellste Version.


    Momentan versuche ich den alten Kernel mit dem neuesten OE zu kombinieren. Glaube aber nicht das er sauber durchkompiliert.


    Wenn es fehlt schlägt gibt es am WE aber immer noch die OE3.2.4 Version mit Grabber Support und hyperion switcher. Zum testen allemal zu gebrauchen.



    .bismarck

  • Ich habe das nun installiert, war ein bisschen ein Kampf^^
    Erst hatte ich zu wenig Platz auf meiner Karte (durch die ganzen Skins die ich nicht nutze^^) und danach habe ich lange an der Config rumprobiert, bis mir aufgefallen ist, dass du andere Leds nutzt^^
    Das einzige was bei mir noch nicht geht, ist der Switcher für die beiden Quellen.
    Ich habe die Dateien mit chmod +x behandelt, hat aber auch keinen Unterschied gemacht.
    Ich habe die beiden Dateien mit sh bzw mit python ausgeführt, bekomme aber auch keine Komandozeilenausgabe.
    Und was ich mich noch frage, wie passiert das mit dem Umschalten eigentlich? Gibt es in XBMC dann irgendwo einen Knopf den man drücken muss, oder muss man das immer über dieses Script und SSH (oder ähnlichem) realisieren?
    Danke^^

  • Schade dass es nicht auf Anhieb funktioniert.


    geh mal nach:

    Code
    cd .xbmc/userdata
    ./switchHyperionSource.sh SCART


    Hier kommt jetzt eine Ausgabe. Wenn die xbmc Konfiguration geladen ist wird der aktuelle hyperion Prozess beendet und ein neuer mit der SCART Konfiguration geladen. Jetzt werden die LEDs über den Videograbber befeuert.


    Prüfe mal ob der stk1160 Treiber geladen ist:

    Code
    dmesg | grep stk1160
    lsmod | grep stk1160


    Quote


    wie passiert das mit dem Umschalten eigentlich?


    Sobald auf eine andere Quelle gewechselt wird, wird der xbmc via HDMI-CEC auf inaktiv gesetzt. XBMC ruft dann dass o.g. Script mit dem Parameter SCART auf. Schaltest Du zurück auf den xbmc wird der via HDMI-CEC auf aktiv gesetzt und führt das Script erneut aus. Diesmal mit dem Parameter XBMC.


    Ist der CEC Adapter überhaupt aktiviert?
    System -> Settings -> System -> Input Devices -> Peripherals -> CEC adapter



    .bismarck

  • Sehr interessante Lösung, ich stehe vor einem ähnlichen Problem, dass ich gerne XBMC aber auch verschiedene HDMI Quellen übers Ambilight laufen hätte.


    Du scheinst dich etwas besser auszukennen: Wäre es möglich XBMC laufen zu lassen aber trotzdem Hyperion das Signal vom USB-Grabber fürs Ambilight berechnen zu lassen?
    Also - frei von jeglichem Sinn - könnte ich XBMC laufen lassen und Ambilight über den USB-Grabber von meiner PS4 laufen lassen?

  • Klar geht das.


    Vorrausgesetzt Deine beiden Konfigurationen sind angepasst setze einfach folgendes in der shell vom RPi ab:

    Code
    cd .xbmc/userdata
    ./switchHyperionSource.sh SCART



    .bismarck

  • Perfekt, dann komme ich für mein vorhaben ja doch definitiv mit einem Raspberry Pi hin :D Ich danke dir vielmals!

  • Hier mal meine Dmesg Ausgabe


    und mein Lsmod


    Wenn ich dein Skript so wie du starte bekomme ich auch eine Ausgabe in der Shell, es wird aber kein Bild (bei Scart) an die Leds gegeben.
    Mein CEC Adapter ist auch aktiv.


    Meine eigentliche Frage zur funktionsweiße des Scriptes:
    Muss ich manuell wechseln, oder wäre es möglich, dass es automatisch erkennt, dass auf dem Grabber ein Signal anliegt?
    Und wenn ich es manuell machen muss, kann man das irgendwie mit der Hyperionapp fürs Handy kombinieren? Diese greift ja auf das "effects" Verzeichniss zu, und dort könnte man eine Verlinkung auf dein Wechselscript setzten, oder?


    edit: Ok, ich glaube ich habe verstanden wie das mit dem Wechseln funktioniert^^ Gibt es da Hardwareseitig (Kabel, TV, zwischengeräte wie AVR oder HDMI Splitter) irgendwelche Anforderungen?


    Danke^^

    Edited once, last by qwasy ().

  • Laut den Logs ist der Treiber geladen.


    Deine Kabel müssen CEC fähig sein.
    Aber wenn Du das Script erfolgreich ausgeführt hast Du aber noch die Oberfläche vom xbmc siehst kann am Grabber nichts ankommen. Hast Du direkt am Grabber eine Quelle angeschlossen die aktuell Daten liefert? Wenn ja dann ist evtl. an der hyperion Konfiguration etwas nicht in Ordnung.


    Du kannst Dir auch 2 verschiedene Konfigurationen mit dem hyperion Tool erstellen lassen und dabei jeweils die Eigenschaften aktiviern/deaktivieren. Was das jeweils ist steht oben im Startpost unter Punkt 6. Denke daran den Pfad der Effekte in der Konfiguration dann noch anzupassen von /opt/hyperion/effects
    nach /storage/hyperion/effects. Aktiviere evtl. auch mal in der hyperion XBMC config im XBMC Checker folgendes: XBMCMenu --> on. Jetzt sollte das Menü vom xbmc auch übers Ambilight laufen.


    Zum Testen ob die Konfiguration über den Grabber generell funktioniert schalte einfach auf diese Quelle, logge Dich auf Deinem RPi ein und führe das switcher Sript mit dem Parameter aus.

    Code
    cd .xbmc/userdata
    ./switchHyperionSource.sh SCART


    Wenns nicht funktioniert kille den Hyperion Daemon komplett:

    Code
    killall hyperiond


    und starte ihn in der Shell mit folgendem Kommando:

    Code
    /storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config_SCART.json


    Damit wird die gesamte Ausgabe von hyperion auf die Konsole umgeleitet. Kopiere diese und poste das mal.


    Wenn das alles nichts hilft, könnte ich vielleicht via Teamviewer auf Deinen RPi schauen.


    Edit: Im xbmc unter System/Einstellungen/System/Debugging kann man den logdebug Modus aktivieren. Mach das mal und schalte ein paar mal zwischen den Quellen hin und her. Beim Umschalten immer einen kurzen Augenblick warten. Danach debug Modus deaktivieren und mir das xbmc log geben. Findest Du unter .xbmc/temp/xbmc.log


    .bismarck

  • Danke fürs antworten^^
    Hier mal meine Ergebnisse:
    Die Shellausgabe


    Ich hab den Starteffekt wieder reingemacht, und dieser wird auch abgespielt. Ich würde spontan auf den Framegrabber tippen.. Bin mir da aber nicht sicher, da ich auf meinem anderen System immernoch hyperion-v4l2 nutze..
    Und ich kann auch per Handyapp drauf connecten und die Farben einstellen.


    Und hier das logfile, ich hoffe du kannst damit etwas anfangen^^ Wenn nicht, werde ich einfach ein neues machen^^


    Ich hab mein Kabel mal gewechselt, hat aber keinen Unterschied gemacht.. Da ich mein PI über meine TV Fernbedinung steuern kann, schätze ich mal das CEC unterstützt wird

  • Du musst den internen v4l2-grabber noch aktivieren. Da hier der separate hyperion-v4l2 nicht benutzt wird. Sieh Dir dazu die Konfiguration(hyperion.config_SCART.json) im Archiv an bzw. Punkt 6 im Startpost.


    Quote


    Da ich mein PI über meine TV Fernbedinung steuern kann, schätze ich mal das CEC unterstützt wird


    Folgende Meldung steht sehr oft im xbmc.log

    Code
    CecLogMessage - command 'POLL' was not acked by the controller


    Laut log wird bei Dir beim Umschalten auf den RPi erfolgreich der hyperion mit xbmc Konfigurationen ausgeführt.
    Schaltest Du auf den TV kommt o.g. Meldung. Der RPi wird nicht in den inaktiven Status versetzt, was zur Folge hat daß die scart Konfiguration nicht geladen wird. Schliesse vielleicht nur mal den RPi direkt an den TV und eine Quelle an den Videograbber.


    Hast Du evtl. einen HDMI-Splitter dazwischen? Nicht alle leiten die CEC Daten korrekt weiter.



    .bismarck

  • Ok ich habe einen Fehler gefunden^^ mein Hyperion war noch die alte Version, die keinen internen Grabber hatte. Ich hab jetzt upgedatet und der Grabber funktioniert.
    Ich habe meine PS3 per Cinch direkt an den USBGrabber gesteckt, und dann funktioniert das erkennen der Farben und auch das erkennen des Umschaltens zwischen XBMC und Scart.
    Jetzt speiße ich sie wieder über HDMI ein, und dann funktioniert es wieder nicht...
    Zu meinem Aufbau, ich habe mein Pi per HDMI Kabel direkt am TV hängen.
    Die PS3 ist über Splitter am TV und am HDMI2AV Konverter (also so wie in den Anleitungen).

  • Ich meine gelesen zu haben dass HDMI2AV Konverter viele HDMI Features nicht durchlassen. Welchen hast Du denn genau? Das würde dann auch die o.g. Meldung aus dem xbmc.log erklären.



    .bismarck

  • Ich nutze diesen (Affiliate-Link)
    Wieso sollte es der HDMI2AV Converter sein?
    Ich dachte, dieser wandelt nur das Bild von Digital zu analog um..
    Und irgendwie hätte ich eher gedacht, dass der Splitter das Problem wäre, da diese ja die neuen Formate wie 24p oder ARC nicht weiterleiten können.
    Und beim CEC (Ich hab ja keine Ahnung davon^^) aber bekommt das Pi keine Nachricht, dass sein HDMI nicht mehr abgerufen wird? Oder funktioniert das komplett anders?^^
    Wobei ich auch keine Ahnugn von dem Thema habe^^

  • Hallo Bismarck,
    dein Beitrag kam gerade rechtzeitig, als ich mit 2 Pis hier herumgekaspert habe.
    Jetzt läuft das Ding mit nur 3 Teilen: 1 Pi, dem USB-Grabber, und der Lichterkette.
    Vielen, vielen Dank, es lief auf Anhieb!
    2 kleine Anmerkungen noch: Ich musste noch gunzip verwenden vor dem Entpacken des Archivs, und habe das mit den LED-Typen auch übersehen. Den HDMI-Switcher habe ich jetzt rausgeschmissen, das ist mir zu fummelig und alles läuft Bestens!
    Liebe Grüße - AnnaOnWeb

  • Hmm mal ne Frage:
    Ich bin recht Linux Noobig und kenne mich mit den unterschiedlichen Systemen nicht aus. Könnte man das so auf RaspBMC auch realisieren?
    Oder gibts da gewisse OE spezifische Dinge, die ein Weezy oder RaspBMC nicht bietet?