Wie die Antwort von @ lenik besagt, muss Ihr Fernseher CEC unterstützen. Ich habe eine kompilierte Version von libcec installiert, die das Befehlszeilendienstprogramm cec-client
von SourceForge mit den folgenden Befehlen enthielt :
wget http://sourceforge.net/projects/selfprogramming/files/libCEC.deb/libcec_2.1.0-1_armhf.deb/download -O libcec_2.1.0-1_armhf.deb
sudo dpkg -i libcec_2.1.0-1_armhf.deb
UPDATE: 2017-02-27
Der obige Link zu SourceForge existiert nicht mehr. Nach diesem Artikel können Sie cec-client
mit dem folgenden Befehl installieren :
sudo apt-get install cec-utils
Der Rest dieser Antwort sollte noch gültig sein.
Hier ist ein Thread auf raspberrypi.org , in dem die Verwendung der cec-client
Befehle zum Ausgeben erläutert wird .
Der Thread besagt, dass der folgende Befehl ein Samsung-Fernsehgerät erfolgreich eingeschaltet hat:
echo "on 0" | cec-client -s
Die folgenden Befehle ändern die Quelle von TV-Tuner zu Raspi HDMI:
echo "as" | cec-client -s
oder
echo "tx 1f 82 30 00" | cec-client -s
Die folgenden Befehle konnten das Fernsehgerät nicht ausschalten:
echo "tx 10 36" | cec-client -s
oder
echo "standby 0" | cec-client -s
standby 0
DEBUG: [ 56474] << putting 'TV' (0) in standby mode
TRAFFIC: [ 56476] << 10:36
DEBUG: [ 56477] sending data: len = 1, payload = 10:36
DEBUG: [ 56538] received data: header:00020001 p0:00003610 p1:00000000 p2:00000000 p3:00000000 reason:1
DEBUG: [ 56539] command transmitted
DEBUG: [ 56660] received data: header:00040002 p0:04360001 p1:00000000 p2:00000000 p3:00000000 reason:2
TRAFFIC: [ 56661] >> 01:00:36:04
NOTICE: [ 56661] >> TV (0) -> Recorder 1 (1): feature abort ( 0)
DEBUG: [ 56661] marking opcode 'standby' as unsupported feature for device 'TV'
echo "standby 0" | cec-client -s
funktioniert bei meinem Panasonic-Fernseher einwandfrei , obwohl der Vorgang danach zum Stillstand kommt und ich es musstekill -9
.cec-client
Sie benötigen ein Fernsehgerät, das das CEC- Protokoll (Consumer Electronics Control) über HDMI unterstützt. Vielleicht ist es eine gute Idee, in Ihrem TV-Handbuch oder auf der Website Ihres Unternehmens nach Einzelheiten zu suchen, und bei der Schnellsuche nach "TV_model + CEC" erhalten Sie möglicherweise einige Hinweise.
Wenn Ihr Fernsehgerät erst vor ein paar Jahren hergestellt wurde, besteht eine gute Chance, dass Sie erfahren, wie Sie CEC einrichten und aktivieren, aber bei älteren Modellen sind die Chancen nicht so gut.
Die Samsung CEC-Implementierung wird aufgerufen
Anynet+
. Möglicherweise versuchen Sie auch, danach zu suchen.quelle
Sie könnten so etwas wie eine TV-Fernbedienung mit einer IR-LED machen . Es gibt ein Tutorial über Adafruit, was Sie tun möchten. Hier ist ein weiterer Blogbeitrag zum selben Thema.
Hinweis: Sie müssen die GPIO-Pins verwenden. Ich bin mir nicht sicher, ob Sie nach einer Lösung gesucht haben, die sie verwendet hat oder nicht.
quelle
Nachdem ich den cec-client gemäß der obigen Antwort von HeatfanJohn installiert habe, kann ich meinen Vizio E390i-A1 LED HDTV erfolgreich ein- und ausschalten. Ich habe ein Skript für die Community geschrieben:
Neue Datei erstellen über:
Fügen Sie Folgendes ein:
Mach es ausführbar:
Dann erstellen Sie Aliase:
Fügen Sie Folgendes hinzu:
Speichern, beenden, abmelden / anmelden (oder nur die .bashrc-Datei als Quelle verwenden). Jetzt können Sie den Fernseher mit "tvon" und "tvoff" ein- und ausschalten.
Jetzt können Sie einen nächtlichen Job planen, um den Fernseher auszuschalten, falls Sie einschlafen:
Fügen Sie Folgendes hinzu:
quelle
Ich habe auch ein paar Skripte geschrieben, um dabei zu helfen. Ich bin ein bisschen weiter gegangen als CaptainRewind, obwohl er einen guten Job gemacht hat. Dies ist nur ein Shell-Skript, das zur Steuerung meines Fernsehgeräts geschrieben wurde. Daher habe ich nichts eingefügt, das nicht unterstützt wird (z. B. Lautstärkeregelung und Kanalsteuerung; ich suche immer noch nach einer Möglichkeit, dies zu tun, ohne viel mehr zu kaufen Hardware) und es enthält Setup-spezifische Details wie "tv input raspi" als Synonym für "tv input 3", aber ich habe diese so belassen, dass Sie sehen können, wie Sie solche Anpassungen für sich selbst vornehmen können.
Sie können es problemlos verwenden Wenn Sie es in / usr / local / bin / tv ablegen, indem Sie Befehle wie "tv on" "tv off" oder "tv input 1" eingeben, oder Sie können es einfach in Ihr Ausgangsverzeichnis als tv ablegen. sh und benutze es direkt von dort.
Ich hoffe das hilft einigen Leuten.
quelle
Vielleicht möchten Sie es mit einer neueren Version von XBMC (jetzt Kodi ') wiederholen. Ich hatte mit meinem Samsung UE46F6500-Fernseher und OpenELEC (offiziell) Version: 5.95.3 mit Kodi mehr Glück, obwohl die CEC-Kontrolle nach dem Aufstellen meines Fernsehers verloren geht auf Standby schalten oder meinen Fernseher wieder einschalten:
Bereithalten:
Auf:
Quelle ändern:
Diese Funktionen entziehen Kodi jedoch die ausschließliche Kontrolle über die CEC-Schnittstelle, sodass Kodi nach einem dieser Befehle die CEC-Kontrolle verliert und die Fernbedienung nicht mehr funktioniert. Sie müssen Kodi neu starten, damit es wieder funktioniert:
Kodi (> = 13) verfügt über integrierte Funktionen CECToggleState, CECActivateSource, CECStandby Einige Leute arbeiten daran, diese CEC-Befehle mit diesen integrierten Funktionen über Python weiterzuleiten, oder suchen nach einer Möglichkeit, die CEC-Hardware im gemeinsam genutzten Modus zu öffnen: http://forum.kodi.tv/showthread.php?tid=207524 und https://discourse.osmc.tv/t/control-tv-on-standby-toggle-using-cec-kodi-built-in- Funktionen / 3638/4
quelle