Archiv > Raspberry PI

Anleitung: Raspberry + Samsung-TV + CEC

(1/2) > >>

LarsX:
So, ich hatte ein wenig Muße, mich noch einmal mit der Kombination "Raspberry + Samsung-TV + cecremote" zu beschäftigen. Vermutlich funktioniert es mit Fernsehern anderer Hersteller ähnlich oder genauso. Zwar bevorzuge ich persönlich eher die Kombi "Raspberry + Flirc", dennoch scheint ja der eine oder andere hier auf CEC zu setzen.

Man installiere sich also zunächst das Paket cecremote.

Eine Standard-CEC-Keymap ist schon aktiv, bei der bei meinem Samsung-Fernseher folgende Tastendrücke per CEC, d.h. über die Fernbedienung zum Samsung-TV und von dort über das HDMI-Kabel zum Raspberry erfolgreich weitergeleitet werden:


--- Code: ---0, 1, 2, 3, 4, 5, 6, 7, 8, 9, PRE-CH, P+, P-, Hoch, Runter, Links, Rechts, Enter, Return, Exit,
A(rot), B(grün), C(gelb), D(blau), Rückspulen, Vorspulen, Pause, Play, Stop, Aufnahme

--- End code ---

Das ist schon recht viel! :) Dennoch fehlt die Taste zum Aufruf des VDR-Menüs und die Taste für den Guide.

Daher möchte man die CEC-Keymap ein kleinwenig verändern oder erweitern. Dazu logge man sich per SSH auf der VDR-Kiste ein und bearbeite mit dem Editor nano die Konfigurationsdatei "/etc/vdr/plugins/cecremote/cecremote.xml".

Im <global>-Abschnitt der xml-Datei füge man hinzu.


--- Code: ---<keymaps cec="myTV" />

--- End code ---

Damit aktiviert man eine zusätzliche, außerhalb des <global>-Knotens noch anzugebende eigene CEC-Keymap "myTV". Am besten ergänzt man sie in der xml-Datei gleich unterhalb des <global>-Abschnitts und notiert dort:


--- Code: ---        <ceckeymap id="myTV">
                <key code="PREVIOUS_CHANNEL">
                        <value>Menu</value>
                </key>
                <key code="ELECTRONIC_PROGRAM_GUIDE">
                        <value>Menu</value>
                        <value>Up</value>
                        <value>Ok</value>
                </key>
        </ceckeymap>

--- End code ---

So sieht meine kleine Erweiterung aus. Sie bewirkt, dass ich mit der PRE-CH-Taste meiner Samsung-Fernbedienung ins VDR-Hauptmenü gelange. Die ursprüngliche in der Standard-CEC-Keymap für diese Taste festgelegte Funktionalität, nämlich zwischen zwei Kanälen hin- und herzuschalten, "opfere" ich sozusagen. Darüber hinaus erreiche ich, dass beim Drücken der Guide-Taste "Menu, Up, Ok" ausgeführt wird. In meinem ganz speziellen Fall starte ich damit das Plugin TvGuide, welches sich im Hauptmenü meines VDR ganz unten befindet.

Auf diese Weise habe ich die CEC-Keymap um den Aufruf des VDR-Hauptmenüs und um den Aufruf des Guides erweitert, sodass ich via CEC ganz gut meinen VDR fernbedienen kann. Ich hoffe, jemand findet das nützlich und kann etwas damit anfangen. ;)

Ich selbst setze weiter auf den Flirc-USB-Stick zum Empfang von IR-Signalen, (a) weil ich damit noch ein wenig flexibler bin und z.B. auch die Info-Taste meiner Fernbedienung nutzen kann und (b) damit ich mir das Ding nicht umsonst gekauft habe.  :D

P.S.: Wer schon einen Flirc-Empfangsstick hat, muss den natürlich abziehen, sonst wird jeder Tastendruck der Fernbedienung doppelt ausgeführt, einmal über Flirc und einmal über CEC.

clausmuus:
Super! Nun hab ich endlich verstanden wie das mit der keymap funktioniert :)

Claus

LarsX:
Ich habe auch ein Weilchen gebraucht, das nachzuvollziehen. Allerdings bin ich weit davon entfernt, alle eventuell vorhandenen Möglichkeiten zur Konfiguration erfasst zu haben. Folgendes ist mir nicht klar (will mich aber auch nicht zu tief reinknien):

1. Gibt es kontextbezogene Keymaps?

Beispiel: Nun habe ich mir PRE-CH als Taste fürs VDR-Hauptmenü eingerichtet, so weit, so gut, klappt prima. Kann ich mir aber auch die OK-Taste fürs VDR-Hauptmenü einrichten? Jein! Das habe ich ausprobiert, und es hat freilich auch geklappt: OK drücken brachte mich dann ins VDR-Menü. Aber wenn ich danach im VDR-Menü mit den Pfeil-Tasten der Fernbedienung durch die Menüpunkte navigiere und OK drücke, um einen Menüpunkt auszuwählen - dann wird eben nicht, wie gewünscht, der markierte Menüpunkt ausgewählt, sondern wieder fungiert die OK-Taste als Menütaste und das Menü schließt sich.  ??? Irgendwie logisch, ne. Daher stellt sich die Frage: Kann ich in der XML-Datei z.B. OK-Taste der Fernbedienung in verschiedenen Kontexten verschieden einrichten?

Noch ein Beispiel: Ich würde gerne die blaue Taste als Info-Taste nehmen, um den Inhalt zur aktuell im TV laufenden Sendung angezeigt zu bekommen. Ich gehe aber davon aus, dass die Erstellung der Zuweisung F1_BLUE->Info die blaue Taste grundsätzlich zur Info-Taste macht, auch in Kontexten, wo dies nicht gewünscht ist.

2. Welche CEC-Key-Codes (key code="??") sind in der XML-Datei erlaubt?

Ist es eine begrenzte vom Entwickler vorgegebene Liste? So kommt, wenn ich die Taste "CH LIST" auf meiner Samsung-FB drücke, der Code "Channel List (Samsung)" durchs HDMI-Kabel zum Raspi. Das habe ich über das Kommando "cec-client" recherchiert. Mir ist es nicht gelungen, den Key in der XML-Konfigurationsdatei aufzugreifen und in irgendeiner Weise zuzuweisen.

Theoretisch kann man eine Liste gültiger CEC-Key-Codes mit dem Kommando LSTK per telnet über Port 6419 oder per svdrpsend.sh erfragen. Allerdings bekommt man in beiden Fällen einen Fehler 500 und den Hinweis, der Befehl sei nicht bekannt. Schuss in den Ofen.
Workaround: Im Sourcecode in die Datei "ceckeymaps.cc" schauen, dort finden sich einige Codes.

Nachtrag: Ich muss mich korrigieren: In der neusten Version von cecremote funktioniert die Variante mit "svdrpsend.sh". Die telnet-Variante liefert nach wie vor den Fehler 500. Folgende mögliche CEC-Keys werden bei mir nach Absetzen des Kommandos "svdrpsend.sh plug cecremote LSTK" gelistet:

Spoiler (show / hide)
--- Code: ---214-00 SELECT
214-01 UP
214-02 DOWN
214-03 LEFT
214-04 RIGHT
214-05 RIGHT_UP
214-06 RIGHT_DOWN
214-07 LEFT_UP
214-08 LEFT_DOWN
214-09 ROOT_MENU
214-0a SETUP_MENU
214-0b CONTENTS_MENU
214-0c FAVORITE_MENU
214-0d EXIT
214-20 NUMBER0
214-21 NUMBER1
214-22 NUMBER2
214-23 NUMBER3
214-24 NUMBER4
214-25 NUMBER5
214-26 NUMBER6
214-27 NUMBER7
214-28 NUMBER8
214-29 NUMBER9
214-2a DOT
214-2b ENTER
214-2c CLEAR
214-2f NEXT_FAVORITE
214-30 CHANNEL_UP
214-31 CHANNEL_DOWN
214-32 PREVIOUS_CHANNEL
214-33 SOUND_SELECT
214-34 INPUT_SELECT
214-35 DISPLAY_INFORMATION
214-36 HELP
214-37 PAGE_UP
214-38 PAGE_DOWN
214-40 POWER
214-41 VOLUME_UP
214-42 VOLUME_DOWN
214-43 MUTE
214-44 PLAY
214-45 STOP
214-46 PAUSE
214-47 RECORD
214-48 REWIND
214-49 FAST_FORWARD
214-4a EJECT
214-4b FORWARD
214-4c BACKWARD
214-4d STOP_RECORD
214-4e PAUSE_RECORD
214-50 ANGLE
214-51 SUB_PICTURE
214-52 VIDEO_ON_DEMAND
214-53 ELECTRONIC_PROGRAM_GUIDE
214-54 TIMER_PROGRAMMING
214-55 INITIAL_CONFIGURATION
214-60 PLAY_FUNCTION
214-61 PAUSE_PLAY_FUNCTION
214-62 RECORD_FUNCTION
214-63 PAUSE_RECORD_FUNCTION
214-64 STOP_FUNCTION
214-65 MUTE_FUNCTION
214-66 RESTORE_VOLUME_FUNCTION
214-67 TUNE_FUNCTION
214-68 SELECT_MEDIA_FUNCTION
214-69 SELECT_AV_INPUT_FUNCTION
214-6a SELECT_AUDIO_INPUT_FUNCTION
214-6b POWER_TOGGLE_FUNCTION
214-6c POWER_OFF_FUNCTION
214-6d POWER_ON_FUNCTION
214-71 F1_BLUE
214-72 F2_RED
214-73 F3_GREEN
214-74 F4_YELLOW
214-75 F5
214-76 DATA
214 91 AN_RETURN

--- End code ---

3. Wie lauten die möglichen VDR-Keys ("values"),

z.B. "Ok" oder "Down", in die die CEC-Key-Codes in der XML-Datei übersetzt werden? Gibt es eine Liste?

Nachtrag: Ich fand hier eine Liste mit VDR-Codes: http://www.vdr-wiki.de/wiki/index.php/Remote.conf.
Ob sie vollständig ist und ob man sie alle in der XML-Konfigurationsdatei verwenden kann - keine Ahnung. Sie lauten wie folgt:

Spoiler (show / hide)
--- Code: ---Up
Down
Menu
Ok
Back
Left
Right
Red
Green
Yellow
Blue
0
1
2
3
4
5
6
7
8
9
Info
Play/Pause
Play
Pause
Stop
Record
FastFwd
FastRew
Next
Prev
Power
Channel+
Channel-
PrevChannel
Volume+
Volume-
Mute
Audio
Subtitles
Schedule
Channels
Timers
Recordings
Setup
Commands
User0
User1
User2
User3
User4
User5
User6
User7
User8
User9

--- End code ---

Die benutzerfefinierten Codes User1 bis User9 kann man in der Datei /etc/vdr/keymacros.conf definieren.

Fazit: Ich habe aktuell nicht die Zeit, mich in alle Tiefen zu fuchsen, wollte jedoch, um den Thread inhaltlich zu vervollständigen -und sei es nur mit noch offenen Fragen- einige Unklarheiten ergänzen. Vielleicht meldet sich früher oder später jemand, der weitere Antworten hat. ;) Dennoch funktionieren natürlich die ersten Gehversuche, die im ersten Post beschrieben sind, recht gut. :)

clausmuus:
Hi,

Du kannst den Tasten in der /etc/vdr/keymacros.conf eine neue Bedeutung zuweisen. Dort werden z.B. den Farbtasten Funktionen zugewiesen, die nur ohne geöffnetem OSD wirken. Ob das dort auch mit der OK->Menü Zuordnung möglich ist, hab ich noch nicht ausprobiert.

Claus

LarsX:
Das funktioniert tatsächlich, danke für den Hinweis. Ergänze ich in der /etc/vdr/keymacros.conf die Zeile


--- Code: ---Ok      Menu
--- End code ---


... dann ruft das Drücken der Ok/Enter-Taste an der Fernbedienung beim Fernsehen das Hauptmenü auf. Innerhalb des Menüs hingegen agiert die Ok-Taste als gewöhnliche Ok-Taste. Perfekt.

Navigation

[0] Message Index

[#] Next page

Go to full version