Hallo,
Die Fernbedienung von vdr wird tradionell über eine serielle Schnittstelle eingebunden. Diese werden aber immer seltener bei Computern und durch USB ersetzt. Machmal gibt es ja auch eine tvkarteneigene Infrarotschnittstelle, die unter Linux auch läuft. Die Bedienungsmöglichkeiten sind aber meist begrenzt. Ein usb/seriell-Umsetzer hilft hier nicht weiter. Es muss schon ein usb-ir-Empfänger sein.
Ein passenes Kit gibt es von der TechnoTrend (USB Infrared Receiver).
Meine Beschreibung setzt die vdr-Installation von Hubertus Sandmann voraus:
http://www.hubertus-sandmann.homepage.t-online.de/VDR.htm)
nach der dort erläuterten Installation von lirc mit yast folgen einige kleine Änderungen:
Die lirc-Module befinden sich in /lib/modules/<kernelversion>-desktop/kernel/drivers/staging
Das Modul lirc_ttusbir läßt sich nur mit der -f Option laden, daher einfügen in /etc/init.d/lirc
case "$1" in
start)
echo -n "Starting lircd "
modinfo evdev > /dev/null 2>&1 && modprobe evdev || :
if test "$LIRC_MODULE" != ""; then
modprobe -f "$LIRC_MODULE"
fi
Die weitere Konfiguration des Moduls geschieht in: /etc/sysconfig/lirc
LIRCD_DRIVER="default"
LIRCD_DEVICE="/dev/lirc0"
LIRC_MODULE="lirc_ttusbir"
Fernbedienung anlernen:
Das Anlernen einer Fernbedienung mit USB-Empfänger unterscheidet sich von solchen mit serieller Schnittstelle. Zunächst zeige ich eine lircd.conf Datei, die ich im Internet für das TechnoTrend usb-ir-Empfänger-Kit gefunden habe. Sie passt recht gut zur vdr version 1.7.23 ( https://github.com/yavdr/yavdr-re…ir-lircd.conf):
Tab.1: lircd.conf für das TechnoTrend usb-ir-Empfänger-Kit
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.6(default) on Tue Mar 15 18:28:11 2011
#
# contributed by
#
# brand: technotrend
# http://www.dvbshop.net/product_info.php?refID=geizhals&info=p57_TechnoTrend-USB-IR-Empfae
#
#
begin remote
name technotrend-remote
bits 13
flags RC5|CONST_LENGTH
eps 30
aeps 100
one 838 838
zero 838 838
plead 940
gap 107304
min_repeat 1
toggle_bit 2
begin codes
KEY_UP 0x154D
KEY_DOWN 0x1D51
KEY_MENU 0x1542
KEY_OK 0x1D4F
KEY_ESC 0x1553
KEY_LEFT 0x1D4E
KEY_RIGHT 0x1550
KEY_RED 0x1D54
KEY_GREEN 0x1555
KEY_YELLOW 0x1D56
KEY_BLUE 0x1557
KEY_0 0x1D4C
KEY_1 0x1543
KEY_2 0x1D44
KEY_3 0x1545
KEY_4 0x1D46
KEY_5 0x1547
KEY_6 0x1D48
KEY_7 0x1549
KEY_8 0x1D4A
KEY_9 0x154B
KEY_EPG 0x1D62
KEY_PLAY 0x157B
KEY_PAUSE 0x1D7E
KEY_STOP 0x157C
KEY_RECORD 0x1D54
KEY_FASTFORWARD 0x157F
KEY_REWIND 0x1D7D
KEY_INFO 0x1552
KEY_POWER2 0x1D41
KEY_CHANNELUP 0x1563
KEY_CHANNELDOWN 0x1D64
KEY_VOLUMEUP 0x1565
KEY_VOLUMEDOWN 0x1D66
KEY_MUTE 0x1558
KEY_TEXT 0x1D59
KEY_AUDIO 0x155A
end codes
Display More
Man erkennt, dass die beim seriellen Empfänger frei wählbaren Namen durch festgelegte KEY_... ersetzt sind. Diese findet man mit irrecord --list-namespace oder besser aus der Tabelle unter http://www.linuxtv.org/wiki/index.php/Remote_Controllers. Hier sind die Namen der Tasten mit vdr abgestimmt.
Wie kommt man nun zu einer lircd.conf z.B. für die Fernbedienung "ONE FOR ALL" (URC 11-7950 R00, VCR-Code 0037) mit dem TechnoTrend IR-USB-Empfänger? Am Besten macht man sich die folgende Tabelle:
Tab.2: KEY_Code und Namen
Key-code Key nach vdr Fernbedienung
One for All URC 11-7950 s. Batteriefach
Device: VCR-Code 0037
KEY_UP Up ^
KEY_DOWN Down v
KEY_MENU Menu MENU
KEY_OK Ok OK
KEY_ESC Back EXIT
KEY_LEFT Left <
KEY_RIGHT Right >
KEY_RED Red red
KEY_GREEN Green green
KEY_YELLOW Yellow yellow
KEY_BLUE Blue blue
KEY_0 0 0
KEY_1 1 1
KEY_2 2 2
KEY_3 3 3
KEY_4 4 4
KEY_5 5 5
KEY_6 6 6
KEY_7 7 7
KEY_8 8 8
KEY_9 9 9
KEY_INFO Info AV
KEY_PLAY Play >
KEY_PAUSE Pause II
KEY_STOP Stop .
KEY_RECORD Record red point
KEY_FASTFORWARD FastFwd >>
KEY_REWIND FastRew <<
KEY_POWER2 power power
KEY_CHANNELUP ChanUp ch+
KEY_CHANNELDOWN ChanDn ch-
KEY_VOLUMEUP VolUp vol+
KEY_VOLUMEDOWN VolDn vol-
KEY_MUTE Mute MUTE
Display More
Leider findet man erst später heraus, dass:
Taste -/-- identisch mit 0, Doppel; Tasten GUIDE, >>|, |<< tot sind.
Warum KEY_POWER2 ? Antwort: KEY_Power2 schaltet die Anwendung aus, KEY_POWER ist für den Computer.
Die Reihenfolge der Keys ist an sich beliebig, aber man entscheidet sich aus praktischen Gründen entweder für die Reihenfolge der Tasten auf der Fernbedienung oder für die Reihenfolge , in der die Tasten beim späteren Anlernen abgefragt werden. (Hinweise für die Namen und Reihenfolge in vdr findet man in ../src/VDR/in keys.h, ../src/VDR/po/de_DE.po, ../src/VDR/PLUGINS.html#Remote Control.) Bei einer noch fremden Fernbedienung ist es wohl, im Gegensatz zum Beispiel, am einfachsten die Tastenreihenfolge vom obersten bis zum untersten Knopf in die Tabelle einzutragen.
Das Aufzeichnen der Signale und das Erzeugen der Konfigurationsdatei geschieht mit:
/usr/bin/irrecord /etc/lirc/lircd.conf --device=/dev/lirc0
Danach muss man testweise ein paar Tasten drücken. Im weiteren Arbeitsgang muss man die zu erlernenden Tasten gemäß der obigen Tabelle benennen und dann die entsprechende Taste für ca. 1 Sekunde drücken. Zum Abschluss ist die Eingabetaste zu betätigen. Die gewonnene lircd.conf sieht dann folgendermaßen aus:
Tab.3: ONE FOR ALL
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.7(default) on Thu Feb 9 06:45:28 2012
#
# contributed by
#
# brand: ONE FOR ALL, VCR Code 0037
# model no. of remote control: URC 11-7950 R00 s. Batteriefach
# devices being controlled by this remote: vdr lirc_ttusbir
#
begin remote
name one
bits 32
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100
header 8877 4367
one 498 1602
zero 498 488
ptrail 497
repeat 8878 2164
gap 106516
toggle_bit_mask 0x0
begin codes
KEY_UP 0x768941BE
KEY_DOWN 0x7689916E
KEY_MENU 0x76896897
KEY_OK 0x7689718E
KEY_LEFT 0x7689C13E
KEY_RIGHT 0x768909F6
KEY_RED 0x768912ED
KEY_GREEN 0x7689E11E
KEY_YELLOW 0x76895CA3
KEY_BLUE 0x7689FA05
KEY_0 0x768920DF
KEY_1 0x7689A05F
KEY_2 0x7689609F
KEY_3 0x7689E01F
KEY_4 0x768930CF
KEY_5 0x7689B04F
KEY_6 0x7689708F
KEY_7 0x7689F00F
KEY_8 0x768938C7
KEY_9 0x7689B847
KEY_EXIT 0x7689F807
KEY_INFO 0x7689A857
KEY_PLAY 0x768910EF
KEY_PAUSE 0x7689D02F
KEY_STOP 0x7689807F
KEY_RECORD 0x7689906F
KEY_FASTFORWARD 0x7689C03F
KEY_REWIND 0x768940BF
KEY_POWER2 0x768928D7
KEY_CHANNELUP 0x768918E7
KEY_CHANNELDOWN 0x76899867
KEY_VOLUMEUP 0x76891AE5
KEY_VOLUMEDOWN 0x76899A65
KEY_MUTE 0x7689BA45
end codes
end remote
Display More
Übrigens macht es nichts, wenn man nicht alle Tasten in einem Rutsch programmiert. Mit einem Editor kann man aus den Bruchstücken eine komplette Datei zusammensetzen.
Die letzten vier Stellen der Hexzahlen sind mit der "seriellen lircd.conf" identisch. Daher könnte man bei den remotes der LIRC.ORG eine zur Fernbedienung passende "serielle lircd.conf" finden, mit dem usb-ir-Empfänger einige Tasten anlernen und dann die ersten 4(6) Hexstellen der "usb lircd.conf" mit den letzten 4 Stellen der "seriellen lircd.conf" entsprechend kombinieren. Wenn man die beiden Dateien vor sich sieht, ist alles klar. Für kleine Ergänzungen und Korrekturen ist das Verfahren jedenfallls gut geeigne