XBMC standby schalten

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,

    mich ärgert es, dass XBMC beim Nichtstun im Menü soviel CPU-Ressourcen verbraucht. Zunächst lag die Last bei ca. 80-90%, was ich glücklicherweise auf ca. 50% drücken konnte. Wenn der Fernseher jedoch aus ist, finde ich auch die 50% zu schade. Daher habe ich folgenden simplen Perl-Daemon geschrieben.
    Die Idee ist, mittels cec-client den aktuellen Status des Fernsehers abzufragen und xbmc dementsprechend ebenfalls schlafen zu legen. Ich hätte es eigentlich lieber mit cec-client -s gemacht, aber sobald cec-client terminiert, verliert XBMC seine eigene CEC-Verbindung. Falls jemand eine elegantere Methode weiss, nehme ich sie gerne an.

    Grüße
    webster


    Einmal editiert, zuletzt von webster (5. April 2013 um 23:23)

  • Hey,

    danke, dass du das ansprichst. Danach suche ich schon sehr lange. cec-client ist genau das, was ich gesucht habe.
    Von deinem Code inspiriert, habe ich versucht, das Gleiche selbst umzusetzen (ich kann kein Perl), immerhin hast du ja schließlich auch nicht den Fall eingebaut, dass der TV wieder angeschaltet wird ;)

    Zum testen habe ich erst einmal nur "cec-client" gestartet. Komischerweise wird mir nur angezeigt, wenn ich den TV anschalte, nicht aber, wenn ich ihn wieder ausmache. Hat jemand eine Idee, woran das liegen könnte?

    Bzgl. deiner Frage: Eine dauernde while-Schleife ist sicherlich sehr ineffizient. Wäre also wirklich praktisch, wenn man die CEC-Sachen irgendwie anders monitoren könnte.

    XBMC bietet übrigens selbst eine "Funktion", welches XBMC in Bereitschaft setzt oder herunterfährt. Irgendwie funktioniert das bei mir aber nicht.

  • Zitat von Lupurus pid=9651 dateline=1365204720


    Hey,

    danke, dass du das ansprichst. Danach suche ich schon sehr lange. cec-client ist genau das, was ich gesucht habe.
    Von deinem Code inspiriert, habe ich versucht, das Gleiche selbst umzusetzen (ich kann kein Perl), immerhin hast du ja schließlich auch nicht den Fall eingebaut, dass der TV wieder angeschaltet wird ;)


    Hi,

    Der Fall, dass der Fernseher eingeschaltet wird, ist durch -CONT abgedeckt.


    Zitat


    Zum testen habe ich erst einmal nur "cec-client" gestartet. Komischerweise wird mir nur angezeigt, wenn ich den TV anschalte, nicht aber, wenn ich ihn wieder ausmache. Hat jemand eine Idee, woran das liegen könnte?

    Probier mal, ob es an xbmc liegen kann. Beende xbmc komplett und dann schau nochmal.


    Zitat


    Bzgl. deiner Frage: Eine dauernde while-Schleife ist sicherlich sehr ineffizient. Wäre also wirklich praktisch, wenn man die CEC-Sachen irgendwie anders monitoren könnte.

    XBMC bietet übrigens selbst eine "Funktion", welches XBMC in Bereitschaft setzt oder herunterfährt. Irgendwie funktioniert das bei mir aber nicht.

    Die while-Schleife in meinem Codeschnipsel ist nicht ineffizient, weil jedes Zeilenlesen blockiert, bis cec-client eine neue Zeile ausgibt. Der Daemon idled also so gut wie immer, sieht man ja auch an der CPU-Auslastung.

  • Zitat von Lupurus pid=9762 dateline=1365283199


    Achso!
    Danke für die Erklärung.

    Dann teste ich gerne mal dein Skript. Wie starte ich das denn als daemon?

    Datei anlegen, z.b. in /usr/local/bin/cec-daemon, dann

    Code
    chmod a+x /usr/local/bin/cec-daemon

    Zum Testen kannst Du erstmal einfach

    Code
    cec-daemon &

    aufrufen, Fernseher an/ausschalten und top beobachten. Ein Init-Skript kann ich auch mal posten, oder Du schaust Dir eins von denen ab, die bereits in /etc/init.d liegen.
    Ich habe womöglich eine Erklärung für dein ursprüngliches cec-client Problem. Mein Samsung-Fernseher hat eine HDMI-CEC Option für das Ausschalten des Fernsehers. Die muss aktiviert sein, damit der Raspberry das Power-Off Signal erkennt. Vielleicht ist die Option bei Dir deaktiviert.

  • Hm... leider funktioniert es auch nicht, wenn ich XBMC gekillt habe. "cec-client" zeigt mir nur an, wenn der TV angemacht wird. Es sei denn, ich beende cec-client mit Strg+C, dann zeigt er mir nochmal ein paar Meldungen an (inkl., dass der TV jetzt aus ist).
    Leider hat mein Philips keine Möglichkeit, irgendwas bezüglich CEC einzustellen. Ich werde die Tage einfach mal schauen, ob es ein Firmware-Update gibt.

  • Hallo Webster,

    danke für Deinen Beitrag. Ich suche etwas, dass man ggf. ebenfalls mit Deinem Vorgehen kann.

    Mein Raspberry soll meinen AVR mit DLNA-Renderer/Airplay nachrüsten.
    Hier geht es mir speziell um die automatische Quellenwahl per CEC. Ich benutze die Raspbmc Installation und bei zwei Zeitpunkten (direkt nach dem Einschalten und nach dem Startenn von XBMC) sendet der Raspberry ein CEC Signal, welches automatisch am Receiver der passenden HDMI Eingang wählt und den Fernseher einschaltet.

    Dieses Signal würde ich gerne 'manuell' (per Script) senden lassen, sobald bei DLNA/Airplay beginnt (ggf. auch einfach, wenn ein Video/Musik startet).

    Gibt es mittels dem 'cec-client' (ist das eigentlich eine Bibliothek?) die Möglichkeit, diese(s) CEC Signal senden zu lassen?

    beste Grüße
    Christian

    Einmal editiert, zuletzt von enzym (29. April 2013 um 10:31)

Jetzt mitmachen!

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