Eingang am TV per CEC umschalten

  • Moin,

    ich bin noch relativer Anfänger und bastele an einem seniorengerechten Videotelefoniesystem. Dabei habe nun ein sehr spezielles Problem.

    Vorrede: Raspberry Pi 3 B+, aktuelles Buster-OS, HDMI an Sony Bravia KDL-40RD455 von 2017, Video über Jitsi im Chromium-Browser. Da sind alle Schwierigkeiten überwunden. Projektbeschreibung folgt in irgendeiner Form, sobald alles läuft.

    Das Ziel ist, dass die Oma nur einen Taster auf dem Raspi-Gehäuse hat, der das System hochfährt und alles startet. Das funktioniert soweit. Der Taster wird von einem Python-Skript im Hintergrund überwacht und fährt das System auch wieder runter, wenn er erneut gedrückt wird. Das Skript soll den Fernseher auf den vorherigen Sender umschalten und den Raspi sicher runterfahren.

    Ich nutze die CEC-Utils und habe mich von folgendem Artikel "beraten" lassen: Using cec-client on a Raspberry Pi

    Beim Hochfahren schicke ich on 0 (umgesetzt als echo 'on 0' | cec-client -s -d 1), was den Fernseher ggf. aus dem Standby aufweckt.

    Danach kommt unmittelbar as, um den Fernseher auf den HDMI-Port zu schalten, an dem der Raspi hängt.

    Das funktioniert beides.

    Beim Herunterfahren sollte eigentlich einfach is dem Fernseher mitteilen, das vom Raspi kein Signal mehr kommt. Nach meinem Verständnis sollt der Fernseher dann auf die vorherige Signalquelle zurückschalten. Das tut er nicht. Ein Workaround funktioniert allerdings: echo 'tx 10:9D:10:00' | cec-client -s -d 1 . Der macht genau das, was der erste Befehl tun sollte. Damit könnte ich fertig sein...

    Oma schafft es aber, den Fernseher mit der Fernbedienung in Standby zu versetzen, während der Raspi noch läuft. Danach funktioniert das "inaktiv"-Setzen des Raspi-HDMI nicht mehr wie zuvor, weil der Fernseher "vergessen hat", was für eine Signalquelle er vor dem Raspi angezeigt hat. Inaktiv oder nicht, der HDMI-Eingang bleibt weiter aktiv. Nun ist sie völlig aufgeschmissen, weil sie am Fernseher die Signalquellen nicht ändern kann. Super-GAU: Der Fernseher bleibt schwarz! :wallbash:

    Hier kommt also meine Quizfrage: Wie kann ich per CEC die Signalquelle am TV ändern und auf den Digitaleingang des TV schalten? Ich habe das Fernsehermodell angegeben, glaube aber, dass das Problem allgemeiner Natur ist und nicht speziell am Fernsehermodell liegt.

    Probiert habe ich schon echo 'tx 1F:82:00:00' | cec-client -s -d 1 Das sollte im Prinzip dem CEC-Bus mitteilen, dass das aktive Signal der Fernseher ist. Es funktioniert nicht und ich vermute, dass es daran liegt, dass der Fernseher da nicht als eigene Signalquelle angesehen wird, da er mit einem analogen und einem digitalen Signal schon zwei eigene Quellen hat. Ich habe noch einiges mehr ausprobiert, aber das war ein wenig wahllos. Den (Fernseh-) Tuner auf einen speziellen Kanal umzuschalten funktioniert nicht, würde aber möglicherweise auch nicht die Signalquelle umschalten. Per scan sehe ich alle CEC-Geräte und weiß daher, dass ich beim Fernseher nicht mehrere Quellen habe.

    CEC ist sehr speziell. Vielleicht hat sich schon jemand damit beschäftigt und kann mir einen Tip geben, der mich weiter bringt. Vielleicht denke ich falsch, wie CEC funktioniert?! Vielleicht weiß auch jemand, wo ich weiter forschen kann. Google war nicht so hilfreich...

    Vielen Dank im Voraus!

    PuMa

  • Hallo,

    gibt es wirklich niemanden, der sich mit der Steuerung des angeschlossenen Fernsehers mittels CEC beschäftigt hat? Oder ist meine Fragestellung nicht klar?

    Wenn der Fernseher ausgeschaltet wird, bleibt dort der letzte Signaleingang ("Source") gespeichert. Das ist ggf. der HDMI des Raspi. Wenn dann der Raspi runter- und wieder hochfährt, kann er den Fernseher wieder an- und aktiv schalten, aber beim Runterfahren danach schaltet der Fernseher nicht auf Fernsehsender zurück, weil sein letzter aktiver Eingang eben der HDMI war. Ich versuche also, aktiv mit dem Herunterfahren auf den digitalen Empfang im Fernseher umzuschalten.

    Ich denke, irgendetwas in die Richtung von echo 'tx 10:93:02:04:00:00:01:00:00' | cec-client -s -d 1 könnte mein Problem lösen. Was auf der Fernbedienung des Fernsehers einfach ist, weil man einfach die Signalquelle wählt, benötigt hier ganz viele Parameter - die ich nicht kenne.

    Ich bin dankbar für jeden Tip!

  • Um es salopp zu sagen - du bist in dem Thema so tief drin, wie es hier irgendjemand anderes jemals sein wird. Und wie es bei solchen Standards ist: die konkrete Implementierung kann Eigenarten haben, die etwas, das eigentlich gehen sollte, dann doch unmöglich machen.

    Wenn es dezidierte Foren dafür gibt, oder Support der Firma (bei Sony, deren PSx ich benutze, eher unwahrscheinlich) bist du da besser aufgehoben.

    Die Alternative sind Maßnahmen „out of the Box“. Als zB LIRC zur Fernsteuerung des Fernsehers.

  • Ohne Ahnung von der Materie zu haben:

    Welche Art Fernbedienung nutzt der Fernseher?

    Bei Infrarot könntest du ein IR-Empfangsmodul verwenden, dass auf das Standby-Signal der Fernbedienung reagiert und den Raspi zeitgleich runterfährt.

    Nur so als Idee.....

    Spoiler anzeigen

    Pi4 V1.1, 4 GB, USB3-Hub, 250 GB SSD, Bullseye 64, Mate-Desktop, SD-Card Extender (ruht)
    Pi3b Pihole (Buster)
    Pi3b, 128-GB-SSD, Buster, mit 10,1" Monitor als MM (ohne Spiegel ;) )
    orangepi zero, ohne Beschäftigung
    Pi 5 4 GB im GeekPi-Gehäuse mit externer SSD (Bookworm)


    Warnung: Raspi und Co. machen süchtig! :)

  • In den Libraries, die u.a. Synaptic anbietet, gibt es einiges zu "Infrared"

    Spoiler anzeigen

    Pi4 V1.1, 4 GB, USB3-Hub, 250 GB SSD, Bullseye 64, Mate-Desktop, SD-Card Extender (ruht)
    Pi3b Pihole (Buster)
    Pi3b, 128-GB-SSD, Buster, mit 10,1" Monitor als MM (ohne Spiegel ;) )
    orangepi zero, ohne Beschäftigung
    Pi 5 4 GB im GeekPi-Gehäuse mit externer SSD (Bookworm)


    Warnung: Raspi und Co. machen süchtig! :)

  • Tja, der Versuch war gut, aber der Sony Bravia KDL-40RD455 lässt sich nicht im Netzwerk erreichen, weil er offensichtlich kein Smart-TV ist. Bleibt also nur CEC.
    Ich versuche mal, den Status auszulesen und auszugeben und daraus dann abzulesen, welche Parameter die richtigen sind. Das müsste doch eigentlich möglich sein...

  • So, Schluss. Auch dieser Versuch ist gescheitert,

    Es gibt den Frame-Befehl zur Ausgabe des Tuner-Status, den man an den Fernseher schicken kann. Auf dem genutzten Sony Bravia Fernseher bleibt der Aufruf "Give Tuner Device Status" (echo 'tx 10:08:01' | cec-client -s -d 1) ohne Antwort, ebenso Abwandlungen und der Versuch, Parameter aus der DVB T2-Kanalliste des entsprechenden regionalen Senders für den Aufruf "Select Digital Service" zu erraten.

    Was es auch gibt, ist eine Taste auf der Fernbedienung des Fernsehers, die "Digital/Analog" beschriftet ist und nicht nur auf den entsprechenden Tuner umschaltet, sondern auch gleich auf den TV-Eingang. Den zu drücken bekommt man glücklicherweise noch per Telefon erklärt.

    2 Mal editiert, zuletzt von PuMa (24. Oktober 2020 um 17:54)

Jetzt mitmachen!

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